【问题标题】:Pandas merge indicator custom valuePandas 合并指标自定义值
【发布时间】:2019-01-24 16:22:32
【问题描述】:

在 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 的情况下这样做。

【问题讨论】:

  • 不清楚你想要什么。请查看此建议以生成一个最小、完整、可验证的示例:stackoverflow.com/help/mcve
  • 你使用字典来map默认值。 d = {'left_only': 'Only present in last month's data', ...}

标签: pandas


【解决方案1】:

创建一个工作示例:

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

【讨论】:

    猜你喜欢
    • 2021-04-26
    • 2019-11-05
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    相关资源
    最近更新 更多