【问题标题】:Error in creating new dataframe from comparison of 2 dataframe in python通过比较 python 中的 2 个数据帧创建新数据帧时出错
【发布时间】:2023-01-25 10:30:29
【问题描述】:

我有 2 个数据框,其示例如下:

df1:

                     Table                Field
0                    AOI                  AEDAT
1                    AEI                  AEDTZ
2                    AOI                  AEENR
3                    AEO                  AENAM
4                    AEO                  AEOST

df2:

        View       Field
0    Accounting 1  AEDAT
1    Accounting 1  AEDAT
2    Accounting 1  AEOST
3    Accounting 1  AEOST

我想要的是比较 2 个数据帧的 Field 列,如果它们相似,则在第三个数据帧中添加 df2 中的 View 字段,否则将 NA 作为行添加到第三个数据帧。

这是我到目前为止写的:

df3 = pd.DataFrame(columns=['view'])
for index, row in df1.iterrows():
    for index2, row2 in df2.iterrows():
        if row['Field'] == row2['Field']:
            df3['view'].append(row2['View'])

当我运行这段代码时,出现以下错误:TypeError: cannot concatenate object of type '<class 'str'>'; only Series and DataFrame objs are valid

我该如何纠正这个问题?

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

检查merge

df3 = df1.merge(df2, how = 'left', on  = 'Field')

【讨论】:

    【解决方案2】:

    删除表和字段列

    df3 = df1.merge(df2, how ='left', on='Field').drop(['Table', 'Field'], axis=1 )
    

    【讨论】:

      猜你喜欢
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 2014-08-31
      • 2019-01-23
      • 2020-05-12
      • 2021-05-16
      相关资源
      最近更新 更多