df[df['城市'].str.contains("海", na=False)]中contains函数的参数
时间: 2024-03-04 13:51:43 浏览: 200
`contains()` 是 Pandas 的一个字符串方法,用于检查一个字符串序列中是否包含某个子串。
在 `df[df['城市'].str.contains("海", na=False)]` 中,它的参数是 `"海"`,表示要检查的子串是 "海"。`str.contains()` 方法会返回一个布尔类型的 Series,其中每个元素表示对应行的城市名是否包含子串 "海"。`na=False` 表示不将缺失值视为包含某个子串,缺失值对应的结果会被设置成 False。最终结果是返回包含子串 "海" 的行,即城市名中含有 "海" 的行。
相关问题
pandas 中str.contains()用法
`str.contains()`是pandas中一个常用的字符串匹配函数,用于判断一个字符串是否包含某个子字符串。它的常用语法如下:
```python
Series.str.contains(pat, case=True, flags=0, na=nan, regex=True)
```
其中,各参数的含义如下:
- `pat`:要匹配的子字符串,可以是字符串或正则表达式。
- `case`:是否区分大小写,默认为True。
- `flags`:正则表达式的匹配模式。
- `na`:缺失值的替代值,默认为NaN。
- `regex`:是否使用正则表达式进行匹配,默认为True。
例如,我们有一个包含姓名和邮件地址的DataFrame:
```python
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'email': ['alice@gmail.com', 'bob@yahoo.com', 'charlie@hotmail.com', 'david@gmail.com']}
df = pd.DataFrame(data)
```
我们可以使用`str.contains()`来筛选所有邮箱地址中包含"gmail"的行:
```python
gmail_df = df[df['email'].str.contains('gmail')]
```
输出结果如下:
```
name email
0 Alice alice@gmail.com
3 David david@gmail.com
```
需要注意的是,`str.contains()`默认使用正则表达式进行匹配,如果要使用普通字符串进行匹配,需要在`pat`参数中使用`regex=False`。
pandas contains
pandas中的contains()函数用于检查Series中每个元素是否包含指定的字符串,并返回一个布尔值的Series,指示是否包含。可以通过传递参数regex=False来禁用正则表达式匹配。例如,在给定的Series中查找包含字母'o'的元素,可以使用下面的代码:
s.str.contains('o', regex=False)
该函数还可以在数据查询中使用。比如,在给定的DataFrame中查找名字中包含字母'A'的行,可以使用下面的代码:
df.loc[df.name.str.contains('A')]
如果需要同时查找包含字母'A'或'E'的行,可以使用正则表达式的或操作符'|':
df.loc[df.name.str.contains('A|E')]
如果需要忽略大小写,可以使用flags=re.IGNORECASE参数:
df.loc[df.name.str.contains('A|E', flags=re.IGNORECASE)]
另外,还可以使用startswith()和endswith()函数来指定字符串是以指定的字符开头还是结尾。例如,查找以'O'开头的元素:
s.str.startswith('O')
如果想要忽略空值的处理,可以传递参数na=False。例如:
s.str.startswith('O', na=False)
使用match()函数可以确定每个字符串是否与正则表达式匹配。例如,检查每个字符串是否由一个数字和一个小写字母组成:
pd.Series(['1', '2', '3a', '3b', '03c']).str.match(r'[0-9][a-z]')
阅读全文