gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 05:51:40 25 4
gpt4 key购买 nike

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

如果我连接两个数据框(A 和 B),它们有一些相同的列,但也有两个都不存在的列,在生成的数据框中,列的条目对 A 和 B 都不常见值为 NaN。有没有办法让这些条目有另一个默认值?

我不想在连接操作后简单地替换 NaN,因为我想保留的原始数据帧中可能有 NaN 值。

这是两个示例数据框:

hello world 如何额外
1 2 3 克
5 -666 11 小时
13 南我
23 7 29 j

另外你如何
1.1 31
b -666 37
1.3 41
d NaN 43
-666 1.7 -666

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

hello world 你好吗
1 2 3 克 W4L
5 -666 11 小时 W4L
13 南我 W4L
23 7 29 j W4L
W4L W4L 31 1.1
W4L W4L 37 乙 -666
W4L W4L 41 摄​​氏度 1.3
W4L W4L 43 d NaN
W4L W4L -666 -666 1.7

最佳答案

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

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])

使用您的示例数据:

In [32]: common_columns = df1.columns.union(df2.columns)

In [34]: df1 = df1.reindex(columns=common_columns, fill_value='4WL')

In [35]: df1
Out[35]:
extra hello how world you
0 g 1 3 2 W4L
1 h 5 11 -666 W4L
2 i 13 NaN W4L
3 j 23 29 7 W4L

In [36]: df2 = df2.reindex(columns=common_columns, fill_value='W4L')

In [37]: pd.concat([df1, df2])
Out[37]:
extra hello how world you
0 g 1 3 2 W4L
1 h 5 11 -666 W4L
2 i 13 NaN W4L
3 j 23 29 7 W4L
0 W4L 31 W4L 1.1
1 b W4L 37 W4L -666
2 c W4L 41 W4L 1.3
3 d W4L 43 W4L NaN
4 -666 W4L -666 W4L 1.7

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

关于python - 合并 pandas dataframe(concat 或 append)时,我可以设置默认值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29929639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com