当前位置:  开发笔记 > 编程语言 > 正文

在Pandas中选择不包含特定字符的行

如何解决《在Pandas中选择不包含特定字符的行》经验,为你挑选了1个好方法。

我需要类似的东西

.str.startswith() 
.str.endswith()

但是对于一个字符串的中间部分.

例如,给定以下pd.DataFrame

      str_name
   0    aaabaa
   1    aabbcb
   2    baabba
   3    aacbba
   4    baccaa
   5    ababaa

我需要抛出包含(至少一个)字母'c'的第1,3和4行.
特定字母('c')的位置未知.
任务是删除包含至少一个特定字母的所有行



1> juanpa.arriv..:

你要 df['string_column'].str.contains('c')

>>> df
  str_name
0   aaabaa
1   aabbcb
2   baabba
3   aacbba
4   baccaa
5   ababaa
>>> df['str_name'].str.contains('c')
0    False
1     True
2    False
3     True
4     True
5    False
Name: str_name, dtype: bool

现在,您可以像这样"删除"

>>> df = df[~df['str_name'].str.contains('c')]
>>> df
  str_name
0   aaabaa
2   baabba
5   ababaa
>>>

编辑添加:

如果您只想查看第一个k字符,则可以slice.假设k=3:

>>> df.str_name.str.slice(0,3)
0    aaa
1    aab
2    baa
3    aac
4    bac
5    aba
Name: str_name, dtype: object
>>> df.str_name.str.slice(0,3).str.contains('c')
0    False
1    False
2    False
3     True
4     True
5    False
Name: str_name, dtype: bool

注意,Series.str.slice表现不像典型的Python切片.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有