从文件保存和加载时,如何在 Pandas DataFrame 中保留列表?

How can I preserve lists in a Pandas DataFrame when saving and loading from file?

我有一个 Pandas DataFrame,其中有一列由列表组成。例如

Idx  foo  bar  lists
0    ___  ___  [0, 1, 2]
1    ___  ___  [3, 4, 5]

我不确定如何在保留列表对象的同时将此 DataFrame 保存到文件并重新加载。

使用pd.to_csv时,列表变成字符串表示。 eval() 函数可以工作,但 DataFrame 有 10k+ 行并且需要很长时间。

当 pickling 和 unpickling 时,我收到以下错误:UnpicklingError: invalid load key, ','。我认为这是指每个列表中的逗号。

如何在不丢失列表的情况下保存和加载此文件?

您可以在 pd.read_csv 函数中使用 ast.literal_evalconverters 关键字。

>>> from ast import literal_eval
>>> df = pd.read_csv('some.csv',converters={'lists':literal_eval})
>>> df
Idx  foo  bar  lists
0    ___  ___  [0, 1, 2]
1    ___  ___  [3, 4, 5]