如何为 dask 的元数据中的所有(超过 20.000)列指定相同的数据类型?

How to specify the same datatype for all (over 20.000) columns in meta for dask?

我有一个用户定义的函数 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')

指定tmp_func返回的dataframe列的dtypes是recommended。在我的例子中,来自 tmp_func 的结果数据框有超过 20.000 列,其中仅包含自然数。所以我认为 np.int8 是数据类型。

是否可以指定所有列具有相同的数据类型np.int8?如果用超过 20.000 个元素的字典来指定它,那将是一场噩梦。

用字典理解就可以了

result = df.groupby('id').apply(tmp_func, meta = {col: np.int8 for col in df.columns)}