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

Pandas删除DataFrame指定索引行无输出结果问题咨询

问题原因
  • 第一,你对drop方法的返回值逻辑理解错了:pandas默认不会修改原对象,所有变更类方法默认返回新对象,你执行df2.drop(index=x)后既没有赋值给新变量,也没有直接打印语句,自然看不到输出。
  • 第二,数据集拆分逻辑错误:你当前的df2本身就是筛选出EU_Sales包含K/M的数据集,即便你在df2上删除部分行,得到的依然是含K/M的子集,不可能得到仅含数字的数据集。
  • 第三,索引对应逻辑错误:你手动整理的x列表是原df_01的全局行索引,这些索引大部分不存在于筛选后的df2中,删除操作本身也无法命中目标行。
正确解决办法

不需要手动整理索引列表,直接用布尔索引的取反逻辑就能快速拆分两类数据集,代码更简洁也不会出错:

# 筛选EU_Sales含K/M的数据集
df_with_unit = df_01[df_01['EU_Sales'].str.contains('K|M', na=False)]
# 用~符号对布尔条件取反,直接筛选出EU_Sales仅含数字的数据集
df_only_number = df_01[~df_01['EU_Sales'].str.contains('K|M', na=False)]

参数na=False用于处理EU_Sales为空值的场景,避免匹配时报错。

如果你坚持用drop方法实现,正确写法如下:

# 先拿到所有需要删除的(含K/M的)行的索引
drop_idx = df_01[df_01['EU_Sales'].str.contains('K|M', na=False)].index
# 在df_01上删除目标行,赋值给新变量得到纯数字数据集
df_only_number = df_01.drop(index=drop_idx)

内容的提问来源于stack exchange,提问作者박진영

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:06:01