从文件保存和加载时,如何在 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_eval
到 converters
关键字。
>>> 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]
我有一个 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_eval
到 converters
关键字。
>>> 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]