如果列超过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 !!
提前致谢。
我相信需要从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 !!
具有列表推导的布尔索引是有效的:
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