我正在比较两个电子表格,第二个电子表格在某列中重复出现该值,第一个电子表格具有一些值与第一个电子表格匹配。我想在第二个电子表格中创建另一列,并复制第一张工作表中的相关电话号码
df1:
df1 = pd.Dataframe({"name":["a","b","c"],"phone number":[1,2,3]})
df2:
df2 = pd.Dataframe({"name":["a","a","a","a","b","b","b","b"]})
预期输出:
**name phno**
a 1
a 1
a 1
a 1
b 2
b 2
b 2
b 2
根据 one_to_many 关系比较两个excel 名称,并在 dataframe2 中创建一个新列作为 phno 并复制 dataframe1
中的相关电话号码值感谢您的贡献
答案 0 :(得分:1)
使用map
。在dict
中创建一个df1['name']: df1['phone number']
并映射到df2['name']
df2['phno']=df2.name.map(dict(zip(df1.name, df1['phone number'])))
name phno
0 a 1
1 a 1
2 a 1
3 a 1
4 b 2
5 b 2
6 b 2
7 b 2
答案 1 :(得分:0)
您可以在此处使用标准的pd.merge
:
In [1302]: df2.merge(df1, on='name')
Out[1302]:
name phone number
0 a 1
1 a 1
2 a 1
3 a 1
4 b 2
5 b 2
6 b 2
7 b 2