【问题标题】:Mapping data from 2 dataframes in pandas映射来自 Pandas 中 2 个数据帧的数据
【发布时间】:2017-05-05 14:49:07
【问题描述】:

我有两个需要映射的数据框,最终输出应如下所示。

输入 1

LPAR    DC
A       LA
B       NY
C       CT
D       VA
E       WO

输入 2

LPAR    PROD
A       Microsoft
A       Symantec
A       Vmware
B       Compuware
C       BMC
B       CA

最终输出

LPAR    DC  PROD
A       LA  Microsoft
A       LA  Symantec
A       LA  Vmware
B       NY  Compuware
B       NY  CA
C       CT  BMC
D       VA  
E       WO  

【问题讨论】:

  • 真的和这个类似:stackoverflow.com/questions/25493625/… 基本上你可以通过mergemap 来做到这一点。例如input1.merge(input2, on='LPAR', how='left')input1['PROD'] = input1['LPAR'].map(input2.set_index('LPAR')['PROD'], na_action='ignore').fillna('')
  • 这也有效,谢谢

标签: python pandas


【解决方案1】:

你可以merge两个DataFrames和fillna空字符串

dict1 = {'LPAR': ['A', 'B', 'C', 'D', 'E'], 
            'DC': ['LA', 'NY', 'CT', 'VA', 'WO']}
df1 = pd.DataFrame(dict1)

dict2 = {'LPAR': ['A', 'A', 'A', 'B', 'B', 'C'], 
             'PROD': ['Microsoft', 'Symantec', 'Vmware', 'Compuware', 'CA', 'BMC']}
df2 = pd.DataFrame(dict2)

df3 = df1.merge(df2, on='LPAR', how='outer').fillna('')

【讨论】:

    猜你喜欢
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 2020-06-08
    • 2019-12-08
    • 2017-04-20
    • 2016-07-06
    • 2021-11-14
    相关资源
    最近更新 更多