如果一列使用熊猫超过10个字符,我如何删除整行

时间:2018-09-12 10:56:02

标签: python string python-3.x pandas dataframe

如果列超过10个字符,则删除整个记录。我如何删除整个记录。

我的数据框是

Sl.no     name                 reason
1         sara                 hello 
2          ram                  how are you?
3          raghu                how do you do?
4          sai                   hey !!

预期产量

Sl.no     name                 reason
1         sara                 hello 
2          sai                 hey !!

感谢前进。

2 个答案:

答案 0 :(得分:3)

我认为需要boolean indexing,其掩码从><=,并按Series.str.len查找长度:

df = df[df['reason'].str.len() <= 10]
print (df)
   Sl.no  name  reason
0      1  sara   hello
3      4   sai  hey !!

答案 1 :(得分:1)

具有列表理解的布尔索引是有效的:

df = df[[len(i) <= 10 for i in df['reason']]]

但是还有其他一些方法:

df = pd.concat([df]*2000)

%timeit df['reason'].map(len).le(10)          # 2.32 ms per loop
%timeit df['reason'].str.len().le(10)         # 2.6 ms per loop
%timeit [len(i) <= 10 for i in df['reason']]  # 1.18 ms per loop