在 pandas 合并期间将指示器更新为更友好的消息的最快方法是什么?默认indicator= True产量left_only, right_only, both, 我想将其更新为Only present in last month's data, Only present in current month's data, Present in Both month's data。
我希望不用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
Run Code Online (Sandbox Code Playgroud)
对于映射值:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13608 次 |
| 最近记录: |