从 pandas 数据框中删除句子长度超过特定字长的行

Posted

技术标签:

【中文标题】从 pandas 数据框中删除句子长度超过特定字长的行【英文标题】:Remove the rows from pandas dataframe, that has sentences longer than certain word length 【发布时间】:2019-10-27 01:19:41 【问题描述】:

我想从 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。

【问题讨论】:

@anky_91 greater than or equal to 4 【参考方案1】:

首先按空格拆分值,通过Series.str.len 获取行数并通过倒置条件检查>=<Series.ltboolean 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

【讨论】:

【参考方案2】:

你可以数空格:

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

   X               Y
1  1        An apple
2  2  glass of water

【讨论】:

以上是关于从 pandas 数据框中删除句子长度超过特定字长的行的主要内容,如果未能解决你的问题,请参考以下文章

Pandas 从分组数据框中计算连续相等值的长度

python Pandas - 从数据框中删除列

如何从 Pandas 数据框中删除行列表?

从整个 Python Pandas 数据框中删除美元符号

从 pandas 数据框中删除具有空列表的行

从 pandas 数据框中的元组列中删除元素