【问题标题】:value in dataframe need to be matched with another and then add another colume based on the result数据框中的值需要与另一个匹配,然后根据结果添加另一列
【发布时间】:2021-08-16 03:27:30
【问题描述】:

我有一个用例,我有两个数据框 例如下面,第一个数据帧值需要与第二个数据帧匹配,这是由 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+

【问题讨论】:

  • 请将您的两个数据框作为文本而不是图像发布。
  • 我已经用数值改变了图片

标签: python-3.x pandas dataframe numpy


【解决方案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

【讨论】:

  • 非常感谢 Corralien,这非常有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-06
  • 2017-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-29
相关资源
最近更新 更多