熊猫一对多比较两个Excel列比较?

时间:2020-10-02 03:52:50

标签: python excel pandas dataframe

我正在比较两个电子表格,第二个电子表格在某列中重复出现该值,第一个电子表格具有一些值与第一个电子表格匹配。我想在第二个电子表格中创建另一列,并复制第一张工作表中的相关电话号码

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

中的相关电话号码

感谢您的贡献

2 个答案:

答案 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