【问题标题】:How to append pandas dataframe to_csv with different columns如何将熊猫数据框附加到不同列的 to_csv
【发布时间】:2018-06-07 02:04:11
【问题描述】:

我有一个从 csv 文件 (data.csv) 读取的熊猫数据框。处理数据后,我有另一个数据框的列数少于 data.csv 文件中的列数,但仍然具有相同的列名。现在我想将新数据框附加到 data.csv 文件。
我不知道如何按列名追加和合并。

data.csv 文件有结构

ID    name   email  
1     John   j@gmail.com  
2     Ann    a@gmail.com  

新数据框有结构

ID    name  
1     Smith  
2     Kov  
3     Jane  

现在我想将新的数据框写入 data.csv 文件,结果必须是

ID     Name      email  
1      John      j@gmail.com  
2      Ann       a@gmail.com  
3      Smith   
4      Kov  
5      Jane  

【问题讨论】:

  • 您的预期输出应该是什么样的?
  • pd.concat([df_old, df_new], ignore_index=True)?

标签: python pandas csv


【解决方案1】:

这里的方法不是附加现有的 csv,而是覆盖它,在这种情况下,将原始数据作为输出的一部分。如果您将原始 csv 读取为 df 并且您的新数据框是 df2:

df3 = df.append(df2)
df3.to_csv("data.csv")

或单行:

df.append(df2).to_csv("data.csv")

pd.DataFrame.append 方法在列名匹配时按您希望的方式工作。当然,我建议首先保存到另一个文件名,以确保您获得所需的输出,一旦您对它感到满意,请更改您的代码以覆盖 data.csv,以免您意外破坏数据。

【讨论】:

  • 感谢您的帮助。我也像你一样解决了我的问题。 df2.reindex(columns=df.columns).to_csv("data.csv", index=False, header=False, mode="a")
猜你喜欢
  • 2013-11-18
  • 2014-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-08
  • 2017-06-13
  • 2015-10-20
  • 2019-01-14
相关资源
最近更新 更多