Pandas 合并指标自定义值 [英] Pandas merge indicator custom value
本文介绍了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屋!
查看全文