我需要类似的东西
.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’)的位置未知.
任务是删除包含至少一个特定字母的所有行
解决方法:
你想要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个字符,则可以进行切片.假设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切片不同.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。