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