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