Python 存储包含列表字段的数据帧的最快方法
我正在使用包含3个字段的pandas数据框:Python 存储包含列表字段的数据帧的最快方法,python,pandas,dataframe,Python,Pandas,Dataframe,我正在使用包含3个字段的pandas数据框: Id字段(例如1234) 文本字段(例如“某些文本”) 列表字段(例如:[som',ome',tex',ext']) 使用pd.DataFrame.to_csv()时,列表列存储为文本,加载回内存时必须重新转换。由于该表有300多万行,因此在使用加载过程pd.read\u csv(path,encoding='latin-1',converters={'list\u field':eval})时需要30分钟以上的时间 我曾尝试使用pandas函数
- Id字段(例如1234)
- 文本字段(例如“某些文本”)
- 列表字段(例如:[som',ome',tex',ext'])
pd.DataFrame.to_csv()
时,列表列存储为文本,加载回内存时必须重新转换。由于该表有300多万行,因此在使用加载过程pd.read\u csv(path,encoding='latin-1',converters={'list\u field':eval})时需要30分钟以上的时间
我曾尝试使用pandas函数为每个列表元素指定自己的行,保存分解表,然后在加载时使用pd.DataFrame.group_by()
进行聚合,但这似乎需要更长的时间
我也考虑过json.dump()/load()
或pickle
,但我的理解是,这些包也将列表存储为文本,必须在加载时进行转换
是否有一种有效/快速的方法来减少数据帧的加载时间?您是否尝试过df.to_pickle('data.pkl')
,然后df=pd.read_pickle('data.pkl')
?@AndrejKesely在运行一些测试后,我可以确认加载pickle文件所需的时间相同。