数据框中的值需要与另一个匹配,然后根据结果添加另一个列

时间:2021-05-27 20:19:15

标签: python-3.x pandas dataframe numpy

我有一个用例,我有两个数据帧 例如下面,第一个数据帧值需要与第二个数据帧匹配,这是由 isin 完成的 df3=df1['Values2'].isin(df2.Values) 并返回一个真实的数据集。 但是,要求是创建具有匹配值并添加其名称的第三个数据框。

Name    Values                  
xyz    12.34.45                 
abc    34.56.78                 
pqr    12.12.13                 
asd    15.12.14                 
                        
                        
Values2   Score  Address    Group   Remark  Grade   
10.11.13    10   fdsg       A       Q1      A+  
34.56.78    8    fdg        B       Q2      B+  
12.12.13    4    fdg        C       Q4      A++ 
15.12.14    7    fdgzdg     D       Q3      A   
10.12.13    5.5  kjklj      E       Q9      B+  
                        
                        
                        
Values2     Name        Score   Address Group   Remark  Grade
10.11.13    not found   10      fdsg        A   Q1      A+
34.56.78    abc         8       fdg         B   Q2      B+
12.12.13    pqr         4       fdg         C   Q4      A++
15.12.14    asd         7       fdgzdg      D   Q3      A
10.12.13    not found   5.5     kjklj       E   Q9      B+

1 个答案:

答案 0 :(得分:1)

输入数据(部分):

>>> df1
  Name    Values
0  xyz  12.34.45
1  abc  34.56.78
2  pqr  12.12.13
3  asd  15.12.14

>>> df2
    Values2  Score
0  10.11.13   10.0
1  34.56.78    8.0
2  12.12.13    4.0
3  15.12.14    7.0
4  10.12.13    5.5

在“左侧”合并两个数据框:

>>> pd.merge(df2, df1, left_on="Values2", right_on="Values", how="left") \
      .drop(columns="Values")

    Values2  Score Name
0  10.11.13   10.0  NaN
1  34.56.78    8.0  abc
2  12.12.13    4.0  pqr
3  15.12.14    7.0  asd
4  10.12.13    5.5  NaN