Python pivot_table для больших файлов с 4000 уникальными категориями - PullRequest
1 голос
/ 01 апреля 2019

У меня есть фрейм данных

  ClientId  Scrips   Scrips_viewed
0    A123    Ibank           5
1    B234    SteelCorp      10
2    B234    KTTelecom       8
3    A123    JKFlights       5
4    A123    BPharma         3

Я пытаюсь создать сводные таблицы со всеми уникальными сценариями в столбцах и всеми идентификаторами клиентов в столбце индекса и представлениями в соответствующем столбце.

data.shape - это 741206 строк × 3 столбца

df_matrix = pd.pivot_table(data, values='Scrips_viewed', index='ClientId', columns='Scrips')

Но мой компьютер зависает, и я должен перезагрузить его снова.

Мой уникальный счет Scrips составляет 4200, т.е.4200 столбцов и мои уникальные клиенты это 85 000Мой RAM равен 16 ГБ

Моя ошибка

else:
   1231         # Note that no copy of zero-sized arrays is made. However since they

MemoryError: 

Memory_usage (deep = True)

Index                   80
ClientId         11354188
Scrips             1921078
Scrips_viewed     5929648
dtype: int64

1 Ответ

1 голос
/ 01 апреля 2019

Вероятно, вы можете уменьшить объем памяти, который занимает ваш фрейм данных, преобразовав строковые столбцы в категорические значения .

data[["ClientId", "Scrips"]] = data[["ClientId", "Scrips"]].astype('category')

А затем попытайтесь развернуться.

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