You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Dask DataFrame添加列表或numpy数组列?解决赋值报错

解决Dask DataFrame添加列表/NumPy数组列时的TypeError问题

Dask不支持像Pandas那样直接用df['x'] = x赋值列表或NumPy数组,因为它是分布式数据结构,需要确保数据能被分区处理。以下是两种可行的解决方法:

  • 使用assign()方法直接添加列
    这是Dask推荐的添加列方式,无需额外转换,直接传入列表或NumPy数组即可:

    import dask.dataframe as dd
    import numpy as np
    
    # 示例:添加列表作为列
    lst = [1, 2, 3, 4]
    df = df.assign(new_col=lst)
    
    # 示例:添加NumPy数组作为列
    arr = np.array([1, 2, 3, 4])
    df = df.assign(new_col=arr)
    
  • 将列表/数组转为Dask Series后赋值
    如果需要更灵活的控制(比如匹配分区、索引),可以先把数据转为Dask兼容的Series,再进行赋值:

    # 列表转Dask Series(需匹配原DataFrame的索引)
    dask_lst_series = dd.Series(lst, index=df.index)
    df['new_col'] = dask_lst_series
    
    # NumPy数组转Dask Series(匹配原DataFrame的分区大小)
    dask_arr_series = dd.from_array(arr, chunksize=df.chunksize[0])
    df['new_col'] = dask_arr_series
    

注意:如果原Dask DataFrame有多个分区,确保转换后的Series分区数、大小和原DataFrame一致,避免后续计算出现分区不匹配的错误。

内容的提问来源于stack exchange,提问作者Ghost

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 08:09:16