Там, кажется, ошибка в текущей версии Панды («0.11.0»), который означает, что ответ Матти Джона не будет работать. Если вы указываете столбцы для записи в файл, они записываются в алфавитном порядке, а просто перемаркированы в соответствии с списком в столбцах. Например, этот код:
import pandas
dfdict={}
dfdict["a"]=[1,2,3,4]
dfdict["b"]=[5,6,7,8]
dfdict["c"]=[9,10,11,12]
df=pandas.DataFrame(dfdict)
df.to_csv("dfTest.txt","\t",header=True,cols=["b","a","c"])
результаты в этом (неверный) вывод:
b a c
0 1 5 9
1 2 6 10
2 3 7 11
3 4 8 12
Вы можете проверить, какая версия панд вы установили, выполнив:
pandas.version.version
Документация to_csv is here
На самом деле, кажется, что это известная ошибка и будет исправлено в следующей версии (0.11.1):
https://github.com/pydata/pandas/issues/3489
UPDATE: Там до сих пор не был новый релиз панд, но есть обходной путь, описанный здесь, который не требует использования другая версия панд:
github.com/pydata/pandas/issues/3454
Так изменения последней строки в блоке кода выше следующего будет работать правильно:
df.to_csv("dfTest.txt","\t",header=True,cols=["b","a","c"], engine='python')
UPDATE кажется, что аргумент «cols» был переименован в «столбцы» и что аргумент «engine» устарел (больше не доступен) в последних версиях pandas. Кроме того, эта ошибка исправлена в версии 0.19.0.
Можете ли вы привести пример вашего CSV-файл? – waitingkuo