熊猫合并指标自定义值

时间:2019-01-24 16:22:32

标签: pandas

在熊猫合并期间将指示器更新为更友好的消息的最快方法是什么? 默认的indicator= True产生left_onlyright_onlyboth,我想将其更新为Only present in last month's dataOnly present in current month's dataPresent in Both month's data

我希望在没有lambda operator的情况下做到这一点。

1 个答案:

答案 0 :(得分:0)

创建一个有效的示例:

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