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

问题描述 投票:2回答:2

如果列超过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 !!

提前致谢。

python string python-3.x pandas dataframe
2个回答
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
投票

具有列表推导的布尔索引是有效的:

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
© www.soinside.com 2019 - 2024. All rights reserved.