如何使用Dask DataFrame基于其他列生成符合条件的数组列
实现方案
Dask的dot方法仅支持数值型矩阵乘法,不支持Pandas中拼接字符串的用法,你可以通过map_partitions方法,直接对每个分区的Pandas子表复用原有逻辑,无需改写核心代码:
- 首先定义单分区处理函数:
def process_partition(partition): partition['Lists'] = partition.dot(partition.columns + ",").str.rstrip(",").str.split(",") return partition
- 声明输出表的结构(Dask需要提前感知字段类型),并调用分区处理逻辑:
# 定义输出的meta结构,在原有字段基础上新增Lists列,类型为object meta = df.dtypes.to_dict() meta['Lists'] = 'object' # 对所有分区执行处理逻辑 df = df.map_partitions(process_partition, meta=meta)
执行后调用df.head()即可验证输出结果和Pandas原生逻辑完全一致。
内容的提问来源于stack exchange,提问作者Hassan Syyid
相关产品推荐
相关产品推荐

