Как указать один и тот же тип данных для всех (более 20 000) столбцов в meta для dask?

#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)}