Groupby, Unstack и Plot из Dask Dataframe - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть фрейм данных, ~ 87 миллионов строк, поэтому я использую Dask. Я пытаюсь сделать что-то следующим образом:

df2 = df.groupby(['A','B'])['B'].count().unstack('A')
df2.plot(kind = 'bar', stacked = True)

Это то, что я бы сделал в Pandas, но в Dask нет «unstack» и «plot». Я могу попробовать использовать .compute(), чтобы вернуть Dask DF к Pandas, но я рискую столкнуться с проблемами с памятью. Любые идеи, как (или если) я могу выполнить sh две строки выше?

1 Ответ

0 голосов
/ 20 апреля 2020

Используйте pivot_table, который доступен в сумерках. Вы можете увидеть результаты выглядят одинаково, если вы запустите код ниже. Если нет, вы, вероятно, можете настроить вызов на pivot_table для достижения желаемого результата.

from string import ascii_lowercase

df = pd.DataFrame({'A': list(ascii_lowercase), 'B': [str(i) for i in range(1, 14)] * 2, 'C': np.random.normal(10, 2, 26)}) 

df1 = df.groupby(['A', 'B'])['B'].count().unstack('A') 
df2 = df.pivot_table(index='B', columns='A', aggfunc='count')
...