dataframe 按字符筛选行数据
时间: 2023-07-06 18:31:11 浏览: 94
要按字符筛选行数据,可以使用 Pandas 中的字符串方法和布尔索引来实现。
假设有一个 DataFrame,其中包含一个字符串列 `name`,我们想要筛选出 `name` 列中包含特定字符的行数据,可以使用 `str.contains()` 方法来实现。例如,如果我们想要筛选出 `name` 列中包含字符 `"John"` 的行数据,可以使用以下代码:
```python
import pandas as pd
df = pd.DataFrame({'name': ['John Smith', 'Jane Doe', 'Bob Johnson']})
# 使用 str.contains() 方法筛选出包含字符 "John" 的行数据
filtered_df = df[df['name'].str.contains('John')]
print(filtered_df)
```
输出结果为:
```
name
0 John Smith
2 Bob Johnson
```
在上面的代码中,我们首先创建了一个包含字符串列 `name` 的 DataFrame。然后,我们使用 `str.contains()` 方法来筛选出包含字符 `"John"` 的行数据,并将结果保存到 `filtered_df` 变量中。最后,我们打印出 `filtered_df` 变量,输出结果为包含字符 `"John"` 的行数据。
如果要筛选出不包含特定字符的行数据,可以使用 `~` 运算符来取反。例如,如果我们想要筛选出 `name` 列中不包含字符 `"John"` 的行数据,可以使用以下代码:
```python
import pandas as pd
df = pd.DataFrame({'name': ['John Smith', 'Jane Doe', 'Bob Johnson']})
# 使用 str.contains() 方法筛选出不包含字符 "John" 的行数据
filtered_df = df[~df['name'].str.contains('John')]
print(filtered_df)
```
输出结果为:
```
name
1 Jane Doe
```
在上面的代码中,我们使用 `~` 运算符对包含字符 `"John"` 的行数据取反,从而得到不包含字符 `"John"` 的行数据。最后,我们打印出 `filtered_df` 变量,输出结果为不包含字符 `"John"` 的行数据。
阅读全文