繁体   English   中英

从 pandas dataframe 中的列创建新列

[英]Creating new column from columns in pandas dataframe

我有 2 pandas 数据帧df1df2

df1

ID 姓名 年龄
1个 16
2个 17

df2

ID 分数
1个 16
2个 8个

然后我合并两个数据框:

mergedf = df1.merge(df2, on='id', how='left')

毕竟我将创建一个新的 dataframe,它应该有来自df1的列 id 和名称,来自df2的列 score 以及一个新的列 (diff),它将是 score 和 age 之间的差异,另一个名为 status 的列将是以下结果if 'age' == 'score' then 'OK' else 'false'

这是新的代码 dataframe

newDF = mergedf[['id','name','score','diff', 'status']]

但我仍然不清楚我应该如何嵌套这段代码

if 'age' == 'score' then 'OK' else 'false'

生成新的列差异和状态。

使用diff计算列之间的差异,然后使用numpy.where来满足您的条件

mergedf = df1.merge(df2, on='id', how='left')
mergedf['diff'] = mergedf[['age', 'score']].diff(axis=1)['score']
mergedf['status'] = np.where(mergedf['diff'] == 0, 'OK', False)
print(mergedf)

   id  name  age  score  diff status
0   1   Joe   16     16     0     OK
1   2  Jane   17      8    -9  False

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM