Python 我可以将两行中标签稍有不同的值组合在一起吗

Python 我可以将两行中标签稍有不同的值组合在一起吗,python,pandas,Python,Pandas,我有两个数据帧要合并。但是,行的名称彼此略有不同。可以用熊猫把它们结合起来吗 **df1** Date Campaign Units sold Sales 11/07/2020 AMZ ABCDEFG 1 $10 12/07/2020 AMZ ABCDEFG 2 $20 13/07/2020 AMZ ABCDEFG 3 $30 **df2** Date Campaign Cl

我有两个数据帧要合并。但是,行的名称彼此略有不同。可以用熊猫把它们结合起来吗

**df1**
Date        Campaign     Units sold  Sales 
11/07/2020  AMZ ABCDEFG  1           $10
12/07/2020  AMZ ABCDEFG  2           $20
13/07/2020  AMZ ABCDEFG  3           $30

**df2**
Date        Campaign     Clicks    Spend
11/07/2020  GA ABCDEFG   10        $5
12/07/2020  GA ABCDEFG   15        $6
13/07/2020  GA ABCDEFG   20        $7

**Desired output**
Date       Campaign  Clicks  Units sold   Spend   Sales
11/07/2020 ABCDEFG   10      1            $5      $10
12/07/2020 ABCDEFG   15      2            $6      $20
13/07/2020 ABCDEFG   20      3            $7      $30   

您可能想稍微清理一下输出,但这看起来正是您所需要的

df1["Campaign_id"] = df1["Campaign"].str.split(expand=True)[1]
df2["Campaign_id"] = df2["Campaign"].str.split(expand=True)[1]
df = df1.merge(df2, on=["Campaign_id", "Date"], how="outer")
print(df)

         Date   Campaign_x  Units sold Sales Campaign_id  Campaign_y  Clicks  \
0  11/07/2020  AMZ ABCDEFG           1   $10     ABCDEFG  GA ABCDEFG      10   
1  12/07/2020  AMZ ABCDEFG           2   $20     ABCDEFG  GA ABCDEFG      15   
2  13/07/2020  AMZ ABCDEFG           3   $30     ABCDEFG  GA ABCDEFG      20   

  Spend  
0    $5  
1    $6  
2    $7 

您可能想稍微清理一下输出,但这看起来正是您所需要的

df1["Campaign_id"] = df1["Campaign"].str.split(expand=True)[1]
df2["Campaign_id"] = df2["Campaign"].str.split(expand=True)[1]
df = df1.merge(df2, on=["Campaign_id", "Date"], how="outer")
print(df)

         Date   Campaign_x  Units sold Sales Campaign_id  Campaign_y  Clicks  \
0  11/07/2020  AMZ ABCDEFG           1   $10     ABCDEFG  GA ABCDEFG      10   
1  12/07/2020  AMZ ABCDEFG           2   $20     ABCDEFG  GA ABCDEFG      15   
2  13/07/2020  AMZ ABCDEFG           3   $30     ABCDEFG  GA ABCDEFG      20   

  Spend  
0    $5  
1    $6  
2    $7 

要获得预期的输出:

df3=df1.merge(df2[['Date','Clicks','Spend']],on='Date')

然后标准化
活动


df3[“活动”].str.split(expand=True)[1]

以获得预期的输出:

df3=df1.merge(df2[['Date','Clicks','Spend']],on='Date')

然后标准化
活动


df3[“Campaign”].str.split(expand=True)[1]

我使用了它,得到了一个错误,上面写着“ValueError:传递的项目数错误13,位置意味着1”。你能帮我理解这个问题并帮我解决它吗?谢谢,我用了这个,得到了一个错误,上面写着“ValueError:传递的项目数错误13,位置意味着1”。你能帮我理解这个问题并帮我解决它吗?非常感谢。