gpt4 book ai didi

python - pandas - append 具有不同列数的新行

转载 作者:行者123 更新时间:2023-12-02 14:47:15 29 4
gpt4 key购买 nike

我有一个如下所示的数据框 (df_original):

Year | Thing1 | Thing2
2010 | 748 | 461
2011 | 246 | 493
2012 | 394 | 731

我偶尔需要添加新数据。有时,我得到的数据将具有相同数量的 header 。有时候,我不会。我也不能指望标题的顺序相同。

append 如下内容就可以了:

Year | Thing1 | Thing2
2013 | 561 | 197

但是,我也可以收到这个,一个新的东西(df_new):

Year | Thing1 | Thing2 | Thing3
2013 | 561 | 197 | 369

编辑:我也可以收到这个数据框来追加,concat 会以不同的顺序说明标题吗?

Year | Thing1 | Thing3 | Thing2
2013 | 561 | 369 | 197

期望的输出如下:

Year | Thing1 | Thing2 | Thing3
2010 | 748 | 461 | 0
2011 | 246 | 493 | 0
2012 | 394 | 731 | 0
2013 | 561 | 197 | 369

我怎样才能达到这个结果?

我认为 pd.concat([df_original, df_new], join = 'outer', axis = 1, sort = False) 可能会因为 this post 而这样做但它将新数据放在 df_original 中原始数据的右侧。

最佳答案

简单地将 pd.concatfillna(0) 链接起来:

pd.concat([df, df_new], sort=False).fillna(0)

输出

   Year  Thing1  Thing2  Thing3
0 2010 748 461 0.0
1 2011 246 493 0.0
2 2012 394 731 0.0
0 2013 561 197 369.0

如果你想重置索引,使用ignore_index:

pd.concat([df, df_new], sort=False, ignore_index=True).fillna(0)

输出

   Year  Thing1  Thing2  Thing3
0 2010 748 461 0.0
1 2011 246 493 0.0
2 2012 394 731 0.0
3 2013 561 197 369.0

关于python - pandas - append 具有不同列数的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58295555/

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