如何使用 Python 删除Excel 某两列中 有字符串的行
时间: 2025-04-05 19:16:53 浏览: 57
### 使用 Pandas 删除 Excel 文件中特定列包含字符串的行
以下是实现该功能的具体方法。通过 `pandas` 的强大数据处理能力,可以轻松筛选并删除满足条件的行。
#### 方法描述
要删除某些列中包含指定字符串的行,可以通过布尔索引来完成此操作。具体来说,先加载 Excel 数据到 DataFrame 中,再利用 `.str.contains()` 函数查找目标字符串所在的行,并将其排除掉[^1]。
#### 示例代码
以下是一个完整的示例代码:
```python
import pandas as pd
# 加载 Excel 文件中的数据
df = pd.read_excel('./test2.xlsx', sheet_name="Sheet1", dtype=str, keep_default_na="")
# 假设我们要删除 'NAME' 和 'GRADE' 列中含有字符串 "abc" 或者 "def" 的行
filter_condition = df['NAME'].str.contains('abc|def', na=False) | df['GRADE'].str.contains('abc|def', na=False)
# 反向过滤,保留不匹配的行
filtered_df = df[~filter_condition]
# 打印结果以验证
print(filtered_df)
# 如果需要保存为新的 Excel 文件
filtered_df.to_excel('./output_test2.xlsx', index=False)
```
#### 参数说明
- **pd.read_excel**: 用于读取 Excel 文件的数据。
- `sheet_name`: 指定工作表名称。
- `dtype=str`: 强制将所有数据转换为字符串类型以便统一处理。
- `keep_default_na=""`: 自定义缺失值行为,防止默认 NA 干扰判断。
- **str.contains**: 查找某一列中是否包含指定模式(支持正则表达式)。这里使用管道符 (`|`) 表示逻辑 OR 运算。
- **~ (反向)**: 对布尔数组求反,从而选出不符合条件的行。
- **to_excel**: 将清理后的数据写入新文件。
#### 注意事项
上述代码假定了两个关键前提:
1. 需要检查的目标列为 `'NAME'` 和 `'GRADE'`;
2. 被检测的字符串列表为 `"abc"` 和 `"def"`;实际应用时可以根据需求调整这些变量。
---
阅读全文
相关推荐


















