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”。你能帮我理解这个问题并帮我解决它吗?非常感谢。