为什么Pandas DataFrames不能包含列表作为值?

时间:2019-11-27 08:07:37

标签: python pandas

我对Pandas DataFrames本身有疑问。

我注意到,只要我在DataFrame的“单元格”中有一个列表,就可以使用df.to_csv保存该DataFrame并进行回调,该列表就不是字符串对象。如果要使用列表,通常会使用ast.literal_eval

为什么Pandas DataFrames似乎不能包含列表?还是我丢失了某些东西或做错了什么?

1 个答案:

答案 0 :(得分:1)

不,可以预期,因为保存到csv的所有数据都是文本。

如果要保留list,请使用pickle之类的另一种格式-通过DataFrame.to_pickle写入数据并通过read_pickle读取:

df = pd.DataFrame({'a':[[1,2], [3,5]]})

df.to_pickle('file.pkl')

df = pd.read_pickle('file.pkl')
print (df['a'].apply(type))
0    <class 'list'>
1    <class 'list'>
Name: a, dtype: object