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

如何使用pandas统计DataFrame列中每行逗号分隔的字符串数量

问题原因

  • 第一种方法错误点:提前执行astype('str')将原生NaN空值强制转换为字符串'nan',拆分后得到长度为1的列表,导致空值统计结果错误。
  • 第二种方法错误点:未提前统一转换非空值为字符串类型,若列中存在数值类型的单条编码(如int类型的23),调用str.count会返回NaN,最终被fillna(0)填充为0,导致单条条目统计错误。

可行解决方案

方案1:向量化操作(适配2200行及更大数据量,性能更好)

# 非空值转字符串拆分统计长度,原生空值直接填0
df['count'] = df['pre_code'].astype(str).str.split(',').str.len().where(df['pre_code'].notna(), 0)

方案2:apply实现(代码可读性更高,小数据量使用更便捷)

import pandas as pd

df['count'] = df['pre_code'].apply(lambda x: len(str(x).split(',')) if pd.notna(x) else 0)

两种方案均可输出期望结果:

nopre_codecount
123, 234, 3453
2234, 3452
3231
4NaN0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:57:02