pandas,对dataFrame中某一个列的数据进行处理

Posted 五六七

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas,对dataFrame中某一个列的数据进行处理相关的知识,希望对你有一定的参考价值。

背景:dataFrame的数据,想对某一个列做逻辑处理,生成新的列,或覆盖原有列的值
 
下面例子中的df均为pandas.DataFrame()的数据
 

1、增加新列,或更改某列的值

df["列名"]=值
 
如果值为固定的一个值,则dataFrame中该列所有值均为这个数据
 

2、处理某列

df["列名"]=df.apply(lambda x:方法名(x,入参2),axis=1)
 
说明:
1、方法名为单独的方法名,可以处理传入的x数据
2、x为每一行的数据,做为方法的入参1;x中的数据可以用【x.列名】来获取
3、入参2等为方法需要的其他参数,不需要可以不写
4、axis=1,表示每次取一行数据进行处理,按行处理

例子如下:

根据列title的是否包含特定词,来赋值给新的列1或0的值

bugInfo[IntegrationTest] = bugInfo.apply(lambda x: self.bug_rule(x, "IntegrationTest"), axis = 1)
 
def bug_rule(self, frame, type):  # 处理列表中的数据,更新到sql数据库中
    result = "0"
    if type == "SmokeTest":  # 冒烟测试
        if re.search("^\[冒烟\]|\[冒烟测试\]|【冒烟】|【冒烟测试】", frame["title"]):
            result = "1"
    elif type == "InterfaceTest":  # 接口测试
        if re.search("^\[接口\]|\[接口测试\]|【接口】|【接口测试】", frame["title"]):
            result = "1"
    elif type == "IntegrationTest":  # 集成测试
        if self.IntegrationTime != "" and self.IntegrationTime == frame["created_time"]:
            result = "1"
    return result

 

以上是关于pandas,对dataFrame中某一个列的数据进行处理的主要内容,如果未能解决你的问题,请参考以下文章

Pandas: Grouped DataFrame - 将列的值除以每个组该列中某一行的值

pandas使用replace函数替换dataframe中的值:replace函数对dataframe中指定数据列的值进行替换替换具体数据列的相关值

pandas使用query函数查询dataframe中某一个数据列在指定数据范围的数据行(rows where value is between two values in dataframe)

pandas计算dataframe结束时间列和起始时间列的时间差使用sort_values函数对dataframe数据基于时间差进行排序(设置使用倒序排序)

pandas计算dataframe结束时间列和起始时间列的时间差使用sort_values函数对dataframe数据基于时间差进行排序(默认为升序排序)

pandas使用sort_values函数将dataframe按照指定数据列的内容对dataframe的数据行进行排序(sort dataframe rows by a specific column