我有一个数据框,其中一列包含以下字符串:
df=pd.DataFrame(['Hello world', 'World is good', 'Worldisnice hello'], columns=['A'])
df
A
0 'Hello world'
1 'World is good'
2 'Worldisnice hello'
我正在尝试获取包含一个单词且长度为 11 个字符的行
我正在使用下面的代码,因为它给出了字符串的长度而不是列中的单词
df = df[df['A'].apply(lambda x: len(x) == 11)]
得到如下结果:
df
A
0 'Hello world'
输出应该是:
df
A
0 'Worldisnice hello'
因为是唯一一个包含一个长度等于11个字符的单词
谢谢
最佳答案
len(x)
在您的代码中检查整个字符串的长度。
>>> df.A.str.len()
0 11
1 13
2 17
您需要做的是将字符串拆分为单词并检查是否有任何单词的长度为 == 11。
下面的代码应该完成这项工作。
>>> df[df['A'].apply(lambda x: any(len(y) == 11 for y in x.split()))]
A
2 Worldisnice hello
关于python - 如何根据列值的长度过滤数据框行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65641687/