如何在Python DataFrame中通过条件判断新增列记录更新字段
解决DataFrame新增更新字段列的问题
可以用pandas的apply方法逐行处理数据,实现你的需求,代码示例如下:
import pandas as pd # 构造示例DataFrame data = { 'id': [1, 2, 3], 'updated hobby': ['Cricket', 'Cricket', 'Basketball'], 'old hoby': ['Soccer', 'Cricket', 'Soccer'], 'updated skill': [4, 3, 3], 'old skill': [3, 3, 3] } df = pd.DataFrame(data) # 定义处理每行的函数 def get_updated_columns(row): updated = [] # 判断hobby是否更新 if row['updated hobby'] != row['old hoby']: updated.append('Hobby') # 判断skill是否更新 if row['updated skill'] != row['old skill']: updated.append('Skill') # 返回结果,无更新则返回指定文本 return ', '.join(updated) if updated else 'No update' # 新增"columns updated"列 df['columns updated'] = df.apply(get_updated_columns, axis=1) # 查看结果 print(df)
运行后得到的结果:
id updated hobby old hoby updated skill old skill columns updated 0 1 Cricket Soccer 4 3 Hobby, Skill 1 2 Cricket Cricket 3 3 No update 2 3 Basketball Soccer 3 3 Hobby
代码说明
apply(get_updated_columns, axis=1)表示对DataFrame的每一行(axis=1)应用自定义函数- 函数内部通过条件判断收集更新的字段,最后用
join拼接成字符串,无更新时返回No update
内容的提问来源于stack exchange,提问作者samronaldo309
相关产品推荐
相关产品推荐

