如何在pandas合并DataFrame后生成diff与status两个新列
实现方法
在你已经得到mergedf的基础上,只需要先新增diff和status两列,再提取目标字段即可,有两种常用实现方案:
方案1:pandas原生向量化操作(无需额外导入包,执行效率最高)
# 生成diff列:score与age的差值 mergedf['diff'] = mergedf['score'] - mergedf['age'] # 生成status列:先统一赋值为false,再匹配age等于score的行修改为OK mergedf['status'] = 'false' mergedf.loc[mergedf['age'] == mergedf['score'], 'status'] = 'OK' # 提取目标列得到最终结果 newDF = mergedf[['id','name','score','diff', 'status']]
方案2:numpy where条件判断(写法更简洁)
需要先导入numpy依赖:
import numpy as np mergedf['diff'] = mergedf['score'] - mergedf['age'] mergedf['status'] = np.where(mergedf['age'] == mergedf['score'], 'OK', 'false') newDF = mergedf[['id','name','score','diff', 'status']]
最终结果示例
按照你的测试数据运行后,newDF的输出如下:
| id | name | score | diff | status |
|---|---|---|---|---|
| 1 | Joe | 16 | 0 | OK |
| 2 | Jane | 8 | -9 | false |
内容的提问来源于stack exchange,提问作者superunknown
相关产品推荐
相关产品推荐

