#python #pandas #group-by #pandas-groupby #dask
#python #pandas #групповое-по #pandas-groupby #даск
Вопрос:
У меня есть определяемая пользователем функция tmp_func
и фрейм данных dask df
. Я хотел бы применить эту функцию к каждой группе df
.
def tmp_func(s_df):
...
return(s_df)
result = df.groupby('id').apply(tmp_func, meta = meta)
result = result.compute(scheduler = 'processes')
Рекомендуется указать dtypes столбцов dataframe , возвращаемых tmp_func
. В моем случае результирующий фрейм данных из tmp_func
имеет более 20 000 столбцов, которые содержат только натуральные числа. Так что я думаю np.int8
, что это тип данных.
Можно ли в любом случае указать, что все столбцы имеют один и тот же тип np.int8
данных? Было бы кошмаром указывать его в словаре с более чем 20 000 элементов.
Ответ №1:
Просто используйте dict-понимание
result = df.groupby('id').apply(tmp_func, meta = {col: np.int8 for col in df.columns)}