我有一个数据框,其中包含不同数据类型的列,包括日期。不做了一些修改后,我想将它保存为羽毛文件以便以后访问它。但是我在以下步骤中遇到了错误
historical_transactions.to_feather('tmp/historical-raw')
ArrowNotImplementedError: halffloat
你可以试试这个:
historical_transactions.astype('float32').to_feather('tmp/historical-raw')
请注意,如果您还有无法转换为 float32 的字段,则上述行可能会失败。为了忽略这些列并保持原样,请尝试:
historical_transactions.astype('float32', errors='ignore').to_feather('tmp/historical-raw')
Feather 格式依赖于 Pyarrow,而 Pyarrow 又依赖于 Apache Parquet 格式。关于浮点格式,它只支持浮点(32)和双精度(64)。不知道这对你来说有多大的意义,但在 GitHub 中还有一个自动“强制箭头半精度浮点数到 float32”的公开请求。
我想,在您的数据框中,有一些列dtype
asfloat16
不支持羽化格式。您可以将这些列转换为float32
并尝试。
改进 Kocas 的答案,专门转换半浮动列
half_floats = historical_transactions.select_dtypes(include="float16")
historical_transactions[half_floats.columns] = half_floats.astype("float32")
historical_transactions.to_feather('tmp/historical-raw')