从熊猫数据框中删除句子长度超过特定单词长度的行

时间:2019-06-12 13:42:19

标签: python string pandas split

我想从pandas数据框中删除行,该数据框中包含长度大于所需长度的特定列中的字符串。

例如:

输入框:

X    Y
0    Hi how are you.
1    An apple
2    glass of water
3    I like to watch movie

现在,说我想从数据帧中删除具有长度大于或等于4的单词字符串的行。

所需的输出帧必须为:

X    Y
1    An apple
2    glass of water

删除“ X”列中值为0.3的行,因为第0列中的单词数为4,第3列中的单词数为5。

2 个答案:

答案 0 :(得分:6)

首先按空格分隔值,按Series.str.len获取行数,然后将Series.lt的条件由>=转换为boolean indexing<

df = df[df['Y'].str.split().str.len().lt(4)]
#alternative with inverted mask by ~
#df = df[~df['Y'].str.split().str.len().ge(4)]
print (df)
   X               Y
1  1        An apple
2  2  glass of water

答案 1 :(得分:2)

您可以计算空格:

df[df.Y.str.count('\s+').lt(3)]

   X               Y
1  1        An apple
2  2  glass of water