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