Как написать unstack и reindex в dask? - PullRequest
0 голосов
/ 18 июня 2020

Я пишу сценарий в pandas, но из-за эффективности мне нужно переключиться на dask, но я не уверен, как реализовать unstack и reindex в dask?

Так выглядит мой pandas скрипт:

df_new = df.groupby(['Cars', 'Date'])['Durations'].mean().unstack(fill_value=0).reindex(columns=list_days,index=list_cars,fill_value=0).\
    round().reset_index().fillna(0).round()

1 Ответ

1 голос
/ 18 июня 2020

Обычно результат агрегации .groupby() будет небольшим и уместится в памяти. Как показано в https://docs.dask.org/en/latest/dataframe-best-practices.html#reduce -and-then-use- pandas, вы можете использовать Dask для большой агрегации, а затем pandas для небольшой постобработки в памяти.

df_new = (
    df.groupby(['Cars', 'Date'])['Durations'].mean()
      .compute()  # turn the Dask DataFrame into a pandas dataframe
      .unstack(fill_value=0).reindex(columns=list_days,index=list_cars,fill_value=0).
      .round().reset_index().fillna(0).round()
)
...