首页 > 解决方案 > 熊猫库中的合并函数

问题描述

我正在尝试基于单个列合并两个数据框。此列包含以“+”开头的值。合并功能适用于所有其他行,但带有加号的行除外。例子:

      df1                             df2                    df3(expected Output)
Key   Cost  Conversion         Key   avg cost  Revenue        Key   Cost  Revenue  
AAA   12.23     2              +BBB  22.33     1000           AAA   12.23   1000
+BBB  26.24     1              AAA   92.63     5689           +BBB  26.24   5689    
CCC   15.48     0              DDD   35.68     4567           CCC   15.48   4567 

df3(obtained Output)
Key   Cost  Revenue  
AAA   12.23   1000
+BBB  26.24       
CCC   15.48   4567 

res = df1.merge(df2[['Key', 'Revenue']], on='Key',left_index=True, how = 'left'

标签: pythonmergemissing-data

解决方案


我似乎无法重现您的结果

df1.merge(df2, on='Key')

    Key   Cost  Conversion  avg_cost  Revenue
0   AAA  12.23           2     92.63     5689
1  +BBB  26.24           1     22.33     1000

df2 = pd.read_clipboard()

    Key  avg_cost  Revenue
0  +BBB     22.33     1000
1   AAA     92.63     5689
2   CCC     35.68     4567

df1.merge(df2, on='Key')

    Key   Cost  Conversion  avg_cost  Revenue
0   AAA  12.23           2     92.63     5689
1  +BBB  26.24           1     22.33     1000
2   CCC  15.48           0     35.68     4567

推荐阅读