Pandas:将 timedelta 保存到 Parquet

数据挖掘 熊猫
2022-03-02 20:57:58

看起来 Pandas 不会将 Pandas timedelta转换为 Parquet INTERVAL

>>> import pandas as pd
>>> df = pd.DataFrame([{'seconds': 30}])
>>> df.to_parquet('/tmp/test.parquet') # so far so good
>>> df['duration'] = pd.to_timedelta(df.seconds, unit='seconds')
>>> df.to_parquet('/tmp/test.parquet')
Traceback (most recent call last):
  / ... /
pyarrow.lib.ArrowNotImplementedError: Unhandled type for Arrow to Parquet schema conversion: duration[ns]
>>> 

这只是一个缺失的功能吗?timedelta期望被保存为我错了INTERVAL吗?如果我的数据帧非常大(500mb),你会推荐哪种格式,但我会把它读回给 Pandas - .to_pickle()

1个回答

是的缺少功能。请参阅https://issues.apache.org/jira/browse/ARROW-6780

你可以试试engine=fastparquet