pandas 保存和加载列表值?

nfzehxib  于 2023-08-01  发布在  其他
关注(0)|答案(4)|浏览(152)

我有一个数据框架,其中一列包含一个值列表:
示例:type(df['col_list'].values[0]) = list
我将此数据框保存为csv文件(df.to_csv('my_file.csv')
当我加载dataframe(df = pd.read_csv('my_file.csv'))时,包含值列表的列更改为string类型:type(df['col_list'].values[0]) = str
当转换为列表(list(df['col_list'].values[0])时,我得到的是字符列表,而不是值列表。
我如何保存/加载数据框架,它的哪一列包含值列表?

gmol1639

gmol16391#

使用JSONHDF文件格式,而不是CSV。CSV文件格式对于存储列表或对象集合确实不方便。

n1bvdmb6

n1bvdmb62#

这是因为表被保存为CSV并序列化列表的值。csv格式无法按原样保存列表对象。尝试以另一种格式保存df.to_pickle('test.df')。然后,您可以使用read_pickle将其读回数据框
阅读更多关于保存到pickle here

bvjxkvbb

bvjxkvbb3#

我认为Anurag的建议非常好。但以防万一你想保持现状,这个就行了

import json
df['col_list'] = df['col_list'].apply(json.loads)

字符串
如果您在pd.to_csv之前通过以下方式将col_list转换为JSON文本,则效果会更好

df['col_list'] = df['col_list'].apply(json.dumps)

aiqt4smr

aiqt4smr4#

考虑将其保存为excel文件,如果可以的话。

df.to_excel('my_file.xlsx',index=False)

字符串

相关问题