pandas全匹配,将某字符串所在行删除
时间: 2024-04-12 22:32:33 浏览: 7
您可以使用`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 = {'Name': ['Alice', 'Bob', 'Charlie', 'Dave'],
'Age': [25, 30, 35, 40],
'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
# 定义要删除的字符串列表
delete_strings = ['ob', 'ar']
# 删除包含多个字符串的行
df = df[~df['Name'].str.contains('|'.join(delete_strings))]
print(df)
```
在上面的示例中,我们创建了一个包含姓名、年龄和城市的 DataFrame。然后,我们定义了一个要删除的字符串列表 `delete_strings`,其中包含了要删除的字符串'ob'和'ar'。接下来,我们使用 `str.contains()` 方法结合逻辑运算符 `|`(表示或)来判断姓名列中是否包含删除字符串列表中的任何一个字符串。最后,我们使用条件过滤符号 `~` 来排除包含这些字符串的行,从而删除它们。
运行代码后,输出结果将是:
```
Name Age City
0 Alice 25 New York
3 Dave 40 Tokyo
```
可以看到,带有"Bob"和"Charlie"的行被成功删除了。您可以根据需要更改列名和要删除的字符串列表来适应您的数据。
pandas删除某些字符串所在行
您可以使用 Pandas 中的字符串方法和条件过滤来删除包含特定字符串的行。以下是一个示例代码:
```python
import pandas as pd
# 创建示例数据
data = {'Name': ['Alice', 'Bob', 'Charlie', 'Dave'],
'Age': [25, 30, 35, 40],
'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
# 删除包含特定字符串的行
df = df[~df['Name'].str.contains('ob')]
print(df)
```
在上面的示例中,我们创建了一个包含姓名、年龄和城市的 DataFrame。然后,我们使用 `str.contains()` 方法来判断姓名列中是否包含特定字符串(在这里是"ob")。最后,我们使用条件过滤符号 `~` 来排除包含特定字符串的行,从而删除它们。
运行代码后,输出结果将是:
```
Name Age City
0 Alice 25 New York
2 Charlie 35 Paris
3 Dave 40 Tokyo
```
可以看到,带有"Bob"的行被成功删除了。您可以根据需要更改列名和特定字符串来适应您的数据。