применение astype (str) только к необходимому столбцу - PullRequest
0 голосов
/ 19 октября 2019

У меня есть датафрейм, скажем, 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 голосов
/ 19 октября 2019

Попробуйте использовать df.select_dtypes(include='object')

Дополнительная информация здесь: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.select_dtypes.html

Затем выполните .astype(str) для каждого из выбранных столбцов. Таким образом, вы не конвертируете другие столбцы в строки.

0 голосов
/ 19 октября 2019

Посмотрите на: https://github.com/pandas-dev/pandas/issues/21228

Чтобы получить более конкретный ответ, вам необходимо предоставить более подробную информацию о вашем фрейме данных (типы столбцов и минимальный воспроизводимый пример).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...