pandas的dataframe中只保留含有某一特定字符的行
时间: 2024-03-27 17:39:08 浏览: 18
你可以使用pandas的str.contains()方法来保留dataframe中含有某一特定字符的行。下面是一个例子:
假设你有以下数据:
| 姓名 | 年龄 | 成绩 |
| ---- | ---- | ---- |
| 张三 | 18 | 90 |
| 李四 | 19 | 85 |
| 王五 | 20 | 92 |
| 小明 | 21 | 88 |
现在你想要保留姓名中含有“张”的行,可以使用如下代码:
```
import pandas as pd
data = {'姓名': ['张三', '李四', '王五', '小明'], '年龄': [18, 19, 20, 21], '成绩': [90, 85, 92, 88]}
df = pd.DataFrame(data)
df = df[df['姓名'].str.contains('张')]
print(df)
```
运行代码后,输出结果为:
```
姓名 年龄 成绩
0 张三 18 90
```
可以看到,只有含有“张”的行被保留下来了。如果你想要保留的是不含有某一特定字符的行,可以使用str.contains()的neg参数,将其设置为True即可。
相关问题
pandas筛选某一列中含有特定字符的行
可以使用str.contains()方法来筛选某一列中含有特定字符的行。示例代码如下:
```python
import pandas as pd
# 创建示例数据
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
'Age': [25, 30, 35, 40, 45],
'City': ['Shanghai', 'Beijing', 'Shenzhen', 'Guangzhou', 'Hangzhou']}
df = pd.DataFrame(data)
# 筛选City列中含有"zhou"字符的行
filtered_df = df[df['City'].str.contains('zhou')]
print(filtered_df)
```
运行结果:
```
Name Age City
3 David 40 Guangzhou
4 Emily 45 Hangzhou
```
pandas.DataFrame中删除包涵特定字符串所在的行
要删除 Pandas DataFrame 中包含特定字符串的行,可以使用 Pandas 的布尔索引和 `str.contains()` 方法。以下是示例代码:
```python
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({'A': ['foo', 'bar', 'baz'], 'B': ['apple', 'orange', 'banana']})
# 找到包含特定字符串的行
rows_to_drop = df[df['B'].str.contains('an')].index
# 使用 drop() 方法删除指定的行
df = df.drop(rows_to_drop)
# 输出结果
print(df)
```
这将删除 DataFrame 中包含 'an' 字符串的行,即删除第二和第三行的数据。如果要匹配多个特定字符串,可以使用正则表达式。例如,要匹配包含 'an' 或 'le' 的行,可以使用以下代码:
```python
rows_to_drop = df[df['B'].str.contains('an|le')].index
```