首页 文章

在Python中比较和均衡两个数据帧

提问于
浏览
0

我有以下数据帧:df1

C1    C2
F56   345
G45   65
H13   56
H67   578
Y78   64

DF2

C1    C2
A34   10
F56   345
H13   56
Y78   64

我想比较上面两个数据帧,如果df1包含C1中的值,df2中不存在,反之亦然,我想添加一个缺少值的新行,相应的C2值= 0.所以生成的数据帧看起来如此如下 .

DF1

C1    C2
A34   0
F56   345
G45   65
H13   56
H67   578
Y78   64

DF2

C1    C2
A34   10
F56   345
G45   0
H13   56
H67   0
Y78   64

感谢任何建议 .

1 回答

  • 2

    这是DataFrame.merge的一个很好的用例:https://pandas.pydata.org/pandas-docs/version/0.23/generated/pandas.DataFrame.merge.html

    如果您在关系数据库(左,右,内,外)中花费任何时间,那么合并的好处是加入的方式将是熟悉的 .

    在这种情况下, indicator 参数对您特别感兴趣:

    result_df1 = df1.merge(
        df2,
        how = "outer",
        on = "C1",
        indicator = True,
        suffixes = ("", "_df2")
    )
    

    Merge Result

    因此,在此特定连接中 np.nan 列中的 np.nan 的结果,您将要填充 0 ,然后删除我们引入的额外列 .

相关问题