Python pandas string обрабатывает категориальные данные из базы данных SQL
У меня есть большой набор данных, который мне нужно прочитать в кадре данных панд.
Он содержит много категориальных данных, состоящих из некоторой довольно длинной строки.
Пытаясь использовать метод read_sql_query для панд, я не могу указать, какие столбцы следует рассматривать как категориальные данные.
Это означает, что у меня проблемы с памятью.
У меня есть фон в R, где я могу указать такие вещи, как строка в качестве фактора. Это означает, что у вас могут быть длинные строки с небольшим объемом памяти, поскольку они индексируются как целые числа в R. Разве я не могу сделать то же самое в Python/Pandas?
Я хотел бы сделать это, когда я читаю данные из базы данных! не после. Преобразовать строку в категорию в pandas легко, если она у вас есть в кадре данных, но это не то, что я ищу.
Я понимаю, что могу просто закодировать данные в базе данных, но я бы хотел этого избежать.
1 ответ
Я боюсь, что в настоящее время кодирование на стороне БД (это можно сделать с помощью JOIN с таблицей сопоставления) является единственным жизненно важным вариантом.
Было несколько похожих запросов:
- https://github.com/pandas-dev/pandas/issues/17862
- https://github.com/pandas-dev/pandas/issues/13049
- https://github.com/pandas-dev/pandas/issues/6798
- https://github.com/pandas-dev/pandas/issues/17560
чтение данных в чанах и преобразование каждого чанка в category
dtype может быть сложным, так как может потребоваться объединить категории из всех кусков...