我有 2 个熊猫数据框 df1和df2
df1
ID | 姓名 | 年龄 |
---|---|---|
1 | 乔 | 16 |
2 | 简 | 17 |
df2
ID | 分数 |
---|---|
1 | 16 |
2 | 8 |
然后我合并两个数据帧:
mergedf = df1.merge(df2, on='id', how='left')
毕竟我将创建一个新的数据框,它应该有来自df1 的列 id 和 name ,来自df2 的列分数,另外还有一个新列(diff),它将是分数和年龄之间的差异,另一个名为 status 的列将是以下结果if 'age' == 'score' then 'OK' else 'false'
这是新数据框的代码
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句