Pandas计算DataFrame字符串中数字字符数值之和的代码问题求助
计算DataFrame字符串列中数字字符的数值之和
你的代码无法运行是因为sum()的参数逻辑错误,sum(x, x.isdigit() for x in v)不符合Python的sum()函数语法,正确的做法是先筛选出字符串中的数字字符,转为整数后再求和。
正确实现方式
方式一:使用lambda表达式(简洁写法)
df['numeric'] = df['dname'].apply(lambda v: sum(int(x) for x in v if x.isdigit()))
逻辑说明:遍历每行字符串的每个字符,判断是否为数字,若是则转为整数,最终对这些整数求和。
方式二:定义独立函数(更易读,适合扩展)
如果需要更清晰的代码结构,可以单独定义求和函数:
def calculate_digit_sum(s): total = 0 for char in s: if char.isdigit(): total += int(char) return total df['numeric'] = df['dname'].apply(calculate_digit_sum)
效果验证
针对你提供的示例数据:
123ask
example92
what3ver
执行代码后,numeric列会生成预期结果:
6
11
3
内容的提问来源于stack exchange,提问作者gevaraweb
相关产品推荐
相关产品推荐

