我需要类似的东西
.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
字符,则可以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切片.