你需要的IIUCmerge http://pandas.pydata.org/pandas-docs/stable/generated/pandas.merge.html,但是存在重复的问题,所以首先删除它们drop_duplicates http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.drop_duplicates.html然后选择一列用于添加,另一列用于连接(Placement ID
):
print (pd.merge(df2,
df1.drop_duplicates('Placement ID')[['Units', 'Placement ID']],
how='left',
on='Placement ID'))
Creatives Publisher Name Placement ID Units
0 Temenos Quantcast 1.108720e+13 367628.76
1 Temenos Quantcast 1.108720e+13 367628.76
2 Temenos Quantcast 1.108720e+13 367628.76
如果需要添加索引需要reset_index http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.reset_index.html:
print (pd.merge(df2,
df1.drop_duplicates('Placement ID')
.reset_index()[['level_0','Placement ID']],
how='left',
on='Placement ID'))
Creatives Publisher Name Placement ID level_0
0 Temenos Quantcast 1.108720e+13 0
1 Temenos Quantcast 1.108720e+13 0
2 Temenos Quantcast 1.108720e+13 0
需要删除重复项,因为merge
通过连接键进行多行 - 有 3 个相同的值1.108720e+13
in df2
和 3 行df1
,因此得到 3 x 3 行,例如:
print (pd.merge(df2,
df1.reset_index()[['level_0', 'Placement ID']],
how='left',
on='Placement ID'))
Creatives Publisher Name Placement ID level_0
0 Temenos Quantcast 1.108720e+13 0
1 Temenos Quantcast 1.108720e+13 1
2 Temenos Quantcast 1.108720e+13 2
3 Temenos Quantcast 1.108720e+13 0
4 Temenos Quantcast 1.108720e+13 1
5 Temenos Quantcast 1.108720e+13 2
6 Temenos Quantcast 1.108720e+13 0
7 Temenos Quantcast 1.108720e+13 1
8 Temenos Quantcast 1.108720e+13 2