【问题标题】:Pandas - Concat two dataframes, but if a column is missing in one dataframe, fill that column with NaNPandas - 连接两个数据帧,但如果一个数据帧中缺少一列,则用 NaN 填充该列
【发布时间】:2021-08-20 19:42:54
【问题描述】:

我有两个数据框(df1 和 df2)。它们具有相似的列,但其中之一可能缺少一两列,因为它们来自抓取的网站并不总是返回相同的信息。
让我们说:
df1

Index Column A Column B Column C
0 1 3 5
1 2 4 6

df2

Index Column A Column C
0 7 9
1 8 10

我的预期结果是:

Index Column A Column B Column C
0 1 3 5
1 2 4 6
2 7 NaN 9
3 8 NaN 10

我该怎么做?

【问题讨论】:

    标签: python pandas dataframe concatenation data-science


    【解决方案1】:
    >>> pd.concat([df1, df2], axis=0).reset_index(drop=True)
       Column A  Column B  Column C
    0         1       3.0         5
    1         2       4.0         6
    2         7       NaN         9
    3         8       NaN        10
    

    编辑:pd.concat 仅适用于具有唯一索引的数据。如果您的原始数据框包含重复索引,请尝试以下操作:

    pd.concat([df1.reset_index(drop=True), df2.reset_index(drop=True)], axis=0).reset_index(drop=True)
    

    【讨论】:

    • 我试过这个解决方案,我得到这个错误:'InvalidIndexError: Reindexing only valid with unique value Index objects'
    • 我无法重现您的错误。你用的是什么版本的pandas
    • 尝试一次:pd.concat([df1.reset_index(drop=True), df2.reset_index(drop=True)], axis=0).reset_index(drop=True)
    • @Nk03 - 谢谢,我只是在编辑我的帖子以反映这一点。
    • @not_speshal 我正在使用 pandas==1.2.0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 2020-09-02
    • 1970-01-01
    • 2017-08-16
    • 2021-12-25
    • 2022-08-14
    相关资源
    最近更新 更多