You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python Pandas DataFrame删除包含‘-’的所有行?

解决CSV含‘-’行的过滤问题

你的代码无效有两个核心原因:

  1. 过滤操作没有重新赋值给原DataFrame,只是临时生成了过滤后的结果,原df根本没被修改;
  2. 只检查了Data1列,没处理Data2列里的‘-’,导致仍然会保留Data2含‘-’的行。

以下是两种可行的解决方法:

方法一:多列条件过滤

直接指定所有列都不能等于‘-’,并将结果赋值给df:

import pandas as pd

df = pd.read_csv("data.csv")
# 同时过滤Data1和Data2都不含'-'的行
df = df[(df['Data1'] != '-') & (df['Data2'] != '-')]
print(df)

方法二:将‘-’转为缺失值后删除(更通用)

如果你的数据有很多列,逐个列写条件太麻烦,可以先把所有‘-’替换成pandas识别的缺失值NaN,再一次性删除所有含缺失值的行:

import pandas as pd

df = pd.read_csv("data.csv")
# 将'-'替换为NaN
df = df.replace('-', pd.NA)
# 删除所有含缺失值的行
df = df.dropna()
print(df)

两种方法都能得到你期望的结果:

Data1  Data2
0     99      1
1     99      2
3     98      4
4     97      5

内容的提问来源于stack exchange,提问作者user9964422

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 19:50:40