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

pandas使用assign新增DataFrame列如何实现对应列表元素逐元素翻倍

问题原因

你原有写法无法得到预期结果,是因为a列存储的是Python列表对象,直接将整列转为numpy数组后会是object类型,乘法运算不会遍历每个子列表内的元素做数值计算,最终返回结构不符合要求。

修正实现

首先构造示例DataFrame:

import pandas as pd
import numpy as np

df = pd.DataFrame({'a': [[5.4, 15.3],[2.0,9.1]],'b':[[9.8,2.0],[9.7,6.0,1.2]]})

你可以任选以下两种写法,通过assign生成符合要求的c列:

  • 列表推导写法:执行效率更高,适配大数据量场景
    df_result = df.assign(c=[[val * 2 for val in sub_list] for sub_list in df['a']])
    
  • 序列映射写法:逻辑更直观,代码可读性更强
    df_result = df.assign(c=df['a'].map(lambda lst: [v*2 for v in lst]))
    
运行结果

执行上述代码后打印df_result,即可得到你期望的输出:

a                 b              c
0  [5.4, 15.3]       [9.8, 2.0]  [10.8, 30.6]
1   [2.0, 9.1]  [9.7, 6.0, 1.2]   [4.0, 18.2]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 12:18:14