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

基于列字符串值删除CSV行:Pandas处理汽车销售数据遇问题

解决Pandas删除指定Status行的问题

先给你捋清楚原代码的几个核心问题:

  • for row in df 遍历的是DataFrame的列名,不是每一行,完全搞错了遍历对象
  • df[:6] 是取DataFrame的前6列,不是判断某一行的Status值,逻辑完全不对
  • df.drop[row:6] 语法错误,drop是方法要用括号(),而且这种切片也不是删除指定条件行的正确方式
  • 完全没处理In Process的情况

下面是几种高效的正确写法,Pandas不推荐用循环处理行,效率极低,直接用内置方法搞定:

方法1:直接保留符合条件的行

只保留Status为Shipped的行,代码最简洁:

df = df[df['Status'] == 'Shipped']

方法2:排除不需要的行

用isin()指定要排除的Status值,再用~取反,保留剩下的行:

df = df[~df['Status'].isin(['Disputed', 'In Process'])]

方法3:用drop方法删除指定行

先筛选出要删除的行的索引,再传给drop方法:

# 获取要删除的行的索引
drop_indexes = df[df['Status'].isin(['Disputed', 'In Process'])].index
# 删除这些行,inplace=True可直接修改原DataFrame,无需重新赋值
df.drop(drop_indexes, inplace=True)

注意:如果不想修改原DataFrame,去掉inplace=True,把结果赋值给新变量或原变量即可。

内容的提问来源于stack exchange,提问作者aviad.glove

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:33:16