gpt4 book ai didi

python - 在Python中合并两个数据框

转载 作者:太空宇宙 更新时间:2023-11-03 15:41:07 26 4
gpt4 key购买 nike

如何在Python中覆盖/合并两个数据框,以便添加重叠的单元格(索引、列),并且不常见的单元格保留原始数据框中的值?

这在 Excel 中是可能的,如所解释的 here .

例如:我有两个数据框

df1 = df1 df2 = df2

我希望输出是这样的

output_df = output_df

最佳答案

您需要addfillna ,但在 df1df2 中必须是 NO NaN 值,因为 fillna 删除了它们:

print (df1.add(df2, fill_value=0).fillna(0).astype(int))
a b c
a1 1 2 0
a2 3 514 123
a3 5 539 134

另一个解决方案 union 索引reindex - 如果 DataFrames 中的 NaN 则有效:

idx = df1.index.union(df2.index)

print (df1.reindex(idx, fill_value=0))
a b
a1 1 2
a2 3 4
a3 5 6

print (df2.reindex(idx, fill_value=0))
b c
a1 0 0
a2 510 123
a3 533 134

idx = df1.index.union(df2.index)
print (df1.reindex(idx, fill_value=0)
.add(df2.reindex(idx, fill_value=0), fill_value=0)
.astype(int))
a b c
a1 1 2 0
a2 3 514 123
a3 5 539 134
<小时/>
df1 = pd.DataFrame({'a':[1,3,5],
'b':[2,4,6]}, index=['a1','a2','a3'])

print (df1)
a b
a1 1 2
a2 3 4
a3 5 6

df2 = pd.DataFrame({'b':[510,533],
'c':[123,np.nan]}, index=['a2','a3'])

print (df2)
b c
a2 510 123.0
a3 533 NaN

print (df1.reindex(idx, fill_value=0).add(df2.reindex(idx, fill_value=0), fill_value=0))
a b c
a1 1.0 2 0.0
a2 3.0 514 123.0
a3 5.0 539 NaN
print (df1.add(df2, fill_value=0).fillna(0).astype(int))
a b c
a1 1 2 0
a2 3 514 123
a3 5 539 0 <- replace NaN to 0

关于python - 在Python中合并两个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42115950/

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