Python 3.x 如何在列顺序改变的情况下将dataframe附加到csv文件中,而不迭代每列?

Python 3.x 如何在列顺序改变的情况下将dataframe附加到csv文件中,而不迭代每列?,python-3.x,pandas,csv,dataframe,Python 3.x,Pandas,Csv,Dataframe,我试图将新的数据帧以迭代方式附加到单个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

我试图将新的数据帧以迭代方式附加到单个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
...

有什么建议吗?

使用
reindex
功能

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