我想从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。
答案 0 :(得分:6)
首先按空格分隔值,按Series.str.len
获取行数,然后将Series.lt
的条件由>=
转换为boolean indexing
到<
:3 >
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