仅在必要的列上应用astype(str)

时间:2019-10-19 13:37:24

标签: python pandas dataframe

我有一个数据框,称为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<>

2 个答案:

答案 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)。这样,您就不会将其他列转换为字符串。