pandas全匹配,将某字符串所在行删除
时间: 2024-04-12 10:32:33 浏览: 109
您可以使用`drop`函数来删除包含特定字符串的行。下面是一个示例代码:
```python
import pandas as pd
# 创建一个示例DataFrame
data = {'A': ['foo', 'bar', 'baz'],
'B': ['hello', 'world', 'pandas']}
df = pd.DataFrame(data)
# 找到包含特定字符串的行并删除
df = df[~df['A'].str.contains('bar', na=False)]
print(df)
```
这个例子中,我们使用`contains`函数来检查DataFrame的列'A'中是否包含特定字符串'bar',然后使用`~`取反运算符来获取不包含该字符串的行。最后,我们将结果重新赋值给原始的DataFrame `df`。
注意,`str.contains`默认情况下会忽略缺失值,即`na=True`。如果您想考虑缺失值,请将`na`参数设置为`False`。
相关问题
pandas删除某些字符串所在行
要删除包含特定字符串的行,你可以使用 Pandas 中的 `str.contains()` 方法结合布尔索引来实现。以下是一个示例代码:
```python
import pandas as pd
# 创建示例数据
data = {'col1': ['abc', 'def', 'ghi', 'jkl'],
'col2': ['abc123', 'def456', 'ghi789', 'jkl012']}
df = pd.DataFrame(data)
# 使用 str.contains() 进行字符串匹配,并创建布尔索引
mask = df['col2'].str.contains('abc')
# 使用布尔索引删除匹配的行
df = df[~mask]
print(df)
```
输出结果如下:
```
col1 col2
1 def def456
2 ghi ghi789
3 jkl jkl012
```
在上述示例中,我们使用 `str.contains()` 方法匹配了包含 'abc' 的行,并将匹配结果存储在一个布尔索引中。然后,我们使用 `~` 运算符对布尔索引取反,即删除匹配的行。最后,我们输出删除后的数据框。你可以根据需要修改示例代码来适应你的具体情况。
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
```
阅读全文