【问题标题】:create another column based on matching of two data frames columns根据两个数据框列的匹配创建另一列
【发布时间】:2020-04-11 04:22:13
【问题描述】:

我有两个具有共同列 ID 的数据框 df1 和 df2。两个数据框都有不同的行数和列数。 我想比较这两个数据框 ID。我想在 df1 中创建另一列 y,对于 df1 和 df2 中存在的所有公共 id,y 的值应该为 0,否则为 1。 例如 df1 是

Id col1 col2

1   Abc  def

2   Geh  ghk 

3   Abd  fg

1   Dfg  abc

df2 是

Id  col3 col4

1    Dgh gjs 

2    Gsj aie 

最终的数据框应该是

Id  col1  col2 y

1   Abc   def  0

2   Geh   ghk  0

3   Abd   fg   1 

1   Dfg   abc  0

【问题讨论】:

    标签: python pandas numpy dataframe machine-learning


    【解决方案1】:

    让我们先创建 df1 和 df2:

    df1=pd.DataFrame({'ID':[1,2,3,1], 'col1':['A','B','C', 'D'], 'col2':['C','D','E', 'F']})
    df2=pd.DataFrame({'ID':[1,2], 'col3':['AA','BB'], 'col4':['CC','DD']})
    

    这里,pandas lambda 函数就派上用场了:

    df1['y'] = df1['ID'].map(lambda x:0 if x in df2['ID'].values else 1)
    
    df1
       ID col1 col2  y
    0   1    A    C  0
    1   2    B    D  0
    2   3    C    E  1
    3   1    D    F  0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-10
      • 1970-01-01
      • 1970-01-01
      • 2020-05-17
      • 2021-05-06
      • 2022-01-16
      • 2022-11-23
      • 1970-01-01
      相关资源
      最近更新 更多