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

如何基于DataFrame列中单词的长度筛选数据行

解决筛选包含指定长度单词的DataFrame行问题

嘿,我明白你的问题啦!你之前的代码是在判断整个字符串的长度是否等于11,而不是检查字符串里的单个单词长度,这就是为什么得到了错误的结果。

正确的解决方案

我们需要把每个字符串拆分成独立的单词,然后检查其中是否存在长度为11的单词。可以用apply()结合any()来实现:

import pandas as pd

# 你的原始DataFrame
df = pd.DataFrame(['Hello world', 'World is good', 'Worldisnice hello'], columns=['A'])

# 筛选包含长度为11的单词的行
filtered_df = df[df['A'].apply(lambda x: any(len(word) == 11 for word in x.split()))]

print(filtered_df)

代码解释

  • x.split():把每行的字符串按空格拆分成单词列表(比如第三行会拆成['Worldisnice', 'hello'])
  • len(word) == 11:检查每个单词的长度是否为11
  • any(...):只要列表中有一个单词满足长度条件,就返回True,对应的行就会被保留

执行这段代码后,你会得到预期的结果:

A
2  Worldisnice hello

扩展说明

如果你的字符串里有其他分隔符(比如逗号、句号等),可以用正则表达式来拆分单词,比如:

import re
filtered_df = df[df['A'].apply(lambda x: any(len(word) == 11 for word in re.findall(r'\b\w+\b', x)))]

re.findall(r'\b\w+\b', x)会提取所有由字母数字组成的独立单词,不受其他分隔符影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 04:02:43