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

如何基于DataFrame某列的列表长度为新列按条件赋值

问题说明

你对Series的认知存在偏差:DataFrame的单列本身就是Series类型,df['lenList']里的每一个元素已经是对应列表的长度数值,完全可以直接用于条件判断,不需要额外做类型转换,也没必要用for循环遍历处理。

解法1:矢量化运算(推荐,性能远高于循环/apply,数据量大时优势明显)

直接用numpy.where一步生成新列,甚至不需要单独存储列表长度列:

import numpy as np
df['new_col'] = np.where(df['ListOfQs'].str.len() > 2, df['Col2'], df['Col1'])

解法2:lambda单行实现

如果你需要用lambda实现需求,可以结合apply方法:

df['new_col'] = df.apply(lambda row: row['Col2'] if len(row['ListOfQs']) > 2 else row['Col1'], axis=1)

结果验证

用你提供的示例数据运行后,new_col的结果如下:

Col1Col2ListOfQsnew_col
FirstThird['abc', 'def', 'ghi']Third
SecondFourth['row', 'col']Second

完全符合你的判断规则要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:57:02