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

使用Pandas+正则为DataFrame新增列遇类型错误及空单元格问题

解决Pandas提取列中特定单词时的TypeError问题

原代码报错TypeError: expected string or bytes-like object有两个核心原因:

  • re.findall()仅支持处理单个字符串,直接传入Pandas Series(即df['text'])会触发类型不匹配
  • 文本列中的空单元格是NaN类型,不属于字符串/字节类对象,同样会导致错误

正确实现方案

  1. 先将空单元格转换为空字符串,消除类型异常
  2. 使用Pandas内置的str.findall()方法,它专门适配Series类型的字符串批量提取

示例代码

import pandas as pd
import re

# 处理空值,把NaN转为空字符串
df['text'] = df['text'].fillna('')

# 提取目标单词,生成存储匹配结果列表的新列
df['extracted_words'] = df['text'].str.findall(r'apple|banana|orange')

# 可选:将列表格式转为逗号分隔的字符串
df['extracted_words_str'] = df['extracted_words'].str.join(', ')

进阶优化:匹配完整单词

如果需要避免匹配到apples、bananacake这类包含目标单词的衍生字符串,可以添加单词边界\b:

df['extracted_words'] = df['text'].str.findall(r'\b(apple|banana|orange)\b')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 05:55:15