![](/img/trans.png)
[英]Pandas dataframe: Creating a new column based on data from other columns
[英]Creating new column from columns in pandas dataframe
我有 2 pandas 数据帧df1和df2
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.