Ответ 1
Кажется, что ошибка в текущей версии Pandas ('0.11.0'), что означает, что ответ Matti John не будет работать. Если вы указываете столбцы для записи в файл, они записываются в алфавитном порядке, а просто перемаркированы в соответствии с списком в столбцах. Например, этот код:
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 вы установили, выполнив:
pandas.version.version
Документация для to_csv здесь
На самом деле кажется, что это известная ошибка и будет исправлена в предстоящем выпуске (0.11.1):
https://github.com/pydata/pandas/issues/3489
UPDATE: по-прежнему не существует новой версии pandas, но есть обходное решение, описанное здесь, которое не требует использования другой версии pandas:
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.