我有一个数据框,称为df,具有900列。
当我执行df.to_parquet()
时,它给出了关键错误。您可能会遇到以下错误。只是告诉您所有"df.to_pickle"
在我的代码中都能正常工作
作为我的替代方法:
"df.astype(str);"
会将所有列转换为字符串,因此"df.to_parquet"
成功
但是... 我不想将所有列都转换为“ str”。我只想知道所有列都在引起什么问题。所以这是我的主要担心。 希望大家现在都明白我的问题。
KeyError
Traceback (most recent call last)
~/.conda/envs/py3/lib/python3.6/site-packages/pyarrow/pandas_compat.py in get_logical_type(arrow_type)
68 try:
---> 69 return logical_type_map[arrow_type.id]
70 except KeyError:
NotImplementedError: struct<>
答案 0 :(得分:0)
查看: https://github.com/pandas-dev/pandas/issues/21228
要获得更具体的答案,您需要提供有关数据框的更多详细信息(列类型和最少的可重复示例)。
答案 1 :(得分:0)
尝试使用df.select_dtypes(include='object')
更多信息在这里: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.select_dtypes.html
然后,在所选的每个列上运行.astype(str)
。这样,您就不会将其他列转换为字符串。