Pandas 合并指标自定义值 [英] Pandas merge indicator custom value

查看:81
本文介绍了Pandas 合并指标自定义值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 Pandas 合并期间将指标更新为更友好消息的最快方法是什么?默认的 indicator= True 产生 left_only,right_only,both,我想把它更新为 Only上月数据中存在仅当月数据中存在双月数据中存在.

What is the fastest way to update the indicator to a more friendly message during a pandas merge? The default indicator= True yields left_only,right_only,both, I want to update it to Only present in last month's data,Only present in current month's data, Present in Both month's data.

我希望在没有 lambda 运算符的情况下做到这一点.

I am hoping to do it without a lambda operator.

推荐答案

创建一个工作示例:

np.random.seed(0)
left = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': np.random.randn(4)})    
right = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': np.random.randn(4)})

merged=left.merge(right,on='key',how='outer',indicator=True)
print(merged)

  key   value_x   value_y      _merge
0   A  1.764052       NaN   left_only
1   B  0.400157  1.867558        both
2   C  0.978738       NaN   left_only
3   D  2.240893 -0.977278        both
4   E       NaN  0.950088  right_only
5   F       NaN -0.151357  right_only

用于映射值:

d={"left_only":"Only present in last month's data", "right_only":"Only present in current month's data","both":"Present in Both month's data"}

merged['_merge'] = merged['_merge'].map(d)
print(merged)

  key   value_x   value_y                                _merge
0   A  1.764052       NaN     Only present in last month's data
1   B  0.400157  1.867558          Present in Both month's data
2   C  0.978738       NaN     Only present in last month's data
3   D  2.240893 -0.977278          Present in Both month's data
4   E       NaN  0.950088  Only present in current month's data
5   F       NaN -0.151357  Only present in current month's data

这篇关于Pandas 合并指标自定义值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆