合并pandas dataframe(concat或append)时,我可以设置默认值吗?

2024-09-30 01:22:16 发布

您现在位置:Python中文网/ 问答频道 /正文

从上一个问题开始: Pandas merge two dataframes with different columns

如果合并两个具有相同列的数据帧(A&B),但两个数据帧中都不存在列,则在生成的数据帧中,两个A&B不共用的列的条目的值为NaN。有没有办法让这些条目有另一个默认值?在

我不希望在concat操作之后简单地替换NaN,因为在原始数据帧中可能存在我想要保留的NaN值。在

以下是两个示例数据帧:

hello world how extra 1 2 3 g 5 -666 11 h 13 NaN i 23 7 29 j

extra you how 1.1 31 b -666 37 c 1.3 41 d NaN 43 -666 1.7 -666

例如,如果在不相交列中使用的默认值是“W4L”而不是NaN,则期望的结果是:

hello world how extra you 1 2 3 g W4L 5 -666 11 h W4L 13 NaN i W4L 23 7 29 j W4L W4L W4L 31 1.1 W4L W4L 37 b -666 W4L W4L 41 c 1.3 W4L W4L 43 d NaN W4L W4L -666 -666 1.7


Tags: columns数据youhellopandasworldwithmerge
1条回答
网友
1楼 · 发布于 2024-09-30 01:22:16

一个可能的解决方案是在连接两个数据帧之前“符合”索引,在此步骤中,可以定义填充值:

common_columns = df1.columns.union(df2.columns)

df1 = df1.reindex(columns=common_columns, fill_value='W4L')
df2 = df2.reindex(columns=common_columns, fill_value='W4L')

pd.concat([df1, df2])

以您的示例数据:

^{pr2}$

您可以看到原始的NaN被保留下来。在

相关问题 更多 >

    热门问题