Как писать/читать pandas Серии в/из csv?

Я не могу понять, как правильно писать/читать серию... Следующие (и многие ее варианты) приводят к тому, что серия чтения отличается от написанной серии... обратите внимание, что серия считывается в DataFrame, а не серии.

In [55]: s = pd.Series({'a': 1, 'b': 2})

In [56]: s
Out[56]: 
a    1
b    2

In [57]: s.to_csv('/tmp/s.csv')

In [58]: !cat /tmp/s.csv
a,1
b,2

In [59]: pd.read_csv('/tmp/s.csv')
Out[59]: 
   a  1
0  b  2

Ответ 1

In [3]: s.to_csv('/home/wesm/tmp/sfoo.csv')

In [4]: Series.from_csv('/home/wesm/tmp/sfoo.csv')
Out[4]: 
a    1
b    2

Вы также можете передать header=None, index_col=0, squeeze=True в read_csv, как это предполагал Rutger Kassies.

Ответ 2

CSV не содержит никакой информации о структуре вашей серии pandas. Указание дополнительных аргументов может помочь. Получение данных в нормальном режиме возможно с помощью:

pd.read_csv('s.csv', index_col=0, header=None)

Но это добавляет к нему столбцы столбцов и индексов по умолчанию. Если вы просто хотите сохранить свою серию /DF для дальнейшего использования, лучше использовать методы .save() и pd.load().