如何为 dask 的 meta 中的所有(超过 20.000 个)列指定相同的数据类型?
Posted
技术标签:
【中文标题】如何为 dask 的 meta 中的所有(超过 20.000 个)列指定相同的数据类型?【英文标题】:How to specify the same datatype for all (over 20.000) columns in meta for dask? 【发布时间】:2022-01-13 05:14:13 【问题描述】:我有一个用户定义的函数 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')
recommended指定tmp_func
返回的dataframe列的dtypes。就我而言,tmp_func
生成的数据框有超过 20.000 列,其中仅包含自然数。所以我认为np.int8
是数据类型。
是否可以指定所有列都具有相同的数据类型np.int8
?用超过 20,000 个元素的字典来指定它是一场噩梦。
【问题讨论】:
【参考方案1】:只需使用 dict-comprehension
result = df.groupby('id').apply(tmp_func, meta = col: np.int8 for col in df.columns)
【讨论】:
以上是关于如何为 dask 的 meta 中的所有(超过 20.000 个)列指定相同的数据类型?的主要内容,如果未能解决你的问题,请参考以下文章
如何为所有 3 个项目都存在于选择中的 3 个项目选择 10 个随机记录