对dataframe中含指定字符串的行删除
时间: 2023-10-06 19:08:26 浏览: 50
可以使用`str.contains()`函数来判断DataFrame中每行是否包含指定字符串,并将结果赋给一个布尔型Series,然后使用该Series来过滤出需要保留的行。
假设有如下DataFrame:
``` python
import pandas as pd
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'city': ['New York', 'Los Angeles', 'Chicago', 'Houston']
})
```
要删除city列中包含字符串'York'的行,可以使用如下代码:
``` python
df = df[~df['city'].str.contains('York')]
```
其中,`~`表示取反操作,即保留不含指定字符串的行。执行结果为:
```
name city
1 Bob Los Angeles
2 Charlie Chicago
3 David Houston
```
相关问题
对dataframe中含指定数据的数据删除
可以使用`drop`方法删除含有指定数据的行或列。假设要删除含有数值为`NaN`的行,可以使用以下代码:
```python
import pandas as pd
# 创建示例数据
data = {'name': ['Alice', 'Bob', 'Charlie', 'Dave'],
'age': [25, 30, 35, pd.np.nan],
'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
# 删除含有NaN的行
df = df.dropna()
print(df)
```
输出:
```
name age gender
0 Alice 25.0 F
1 Bob 30.0 M
2 Charlie 35.0 M
```
同样的,如果要删除含有字符串`unknown`的行,可以使用以下代码:
```python
import pandas as pd
# 创建示例数据
data = {'name': ['Alice', 'Bob', 'Charlie', 'Dave'],
'age': [25, 30, 35, 40],
'gender': ['F', 'M', 'M', 'unknown']}
df = pd.DataFrame(data)
# 删除含有'unknown'的行
df = df[df['gender'] != 'unknown']
print(df)
```
输出:
```
name age gender
0 Alice 25 F
1 Bob 30 M
2 Charlie 35 M
```
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
```