如果列超过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 !!
感谢前进。
答案 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