首页 > 解决方案 > 如何在不迭代每列的情况下将数据框附加到列顺序更改的 csv 文件中?

问题描述

我正在尝试将新数据帧迭代地附加到单个 CSV 文件中。问题是数据框总是具有相同的列名,但它们的顺序是随机的。目前,我正在使用以下代码将新数据附加到 csv 中:

with open(name+'.csv', 'a') as f:
    df.to_csv(f, header=f.tell()==0)

但是当列顺序改变时这不起作用。它在不考虑标题的情况下保持附加值的顺序。例如。如果第一个数据帧 id [A,B,C,D] 和第二个数据帧中的列顺序为 [D,C,A,B],则 CSV 变为:

A,B,C,D
a,b,c,d
a,b,c,d
a,b,c,d
...
d,c,a,b
d,c,a,b
d,c,a,b
...

有什么建议么?

标签: python-3.xpandascsvdataframe

解决方案


使用reindex功能

with open(name+'.csv', 'a') as f:
    df.reindex(columns=list('ABCD')).to_csv(f, header=f.tell()==0)

推荐阅读