如何在csv中编写/读取pandas系列?

时间:2012-11-26 01:36:14

标签: python pandas

我无法弄清楚如何正确地编写/读取系列...以下(以及它的许多变体)导致读取系列与书面系列不同...请注意,系列被读入一个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

3 个答案:

答案 0 :(得分:19)

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所建议的内容。

答案 1 :(得分:4)

CSV不包含有关您的pandas系列结构的任何信息。指定一些额外的参数可能有所帮助。可以通过以下方式恢复数据:

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

但是它为它添加了默认的列和索引名称。如果您只想保存Series / DF以供以后使用,最好使用.save()和pd.load()方法。

答案 2 :(得分:0)

将熊猫对象保存到文件中,然后从文件中重新创建该对象,您将使用:

s.to_pickle('filename')

s = pd.read_pickle('filename')

方法。

以下是详细信息:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_pickle.html