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

按列位置筛选DataFrame遇类型错误的解决求助

问题解决思路

错误原因

你报错的核心问题是用错了列的选取方式:df.columns[9]获取的是第9列的列名(如果列名是元组类型就会触发这个类型错误),而不是该列的实际数据,拿列名和数值96.5做比较肯定会报错。

正确代码实现

要按位置选取列的数据,应该用iloc(基于位置的索引)直接定位到对应列的所有行数据。同时因为要保留含NA的行,而NA参与比较会返回False,所以不需要额外处理NA,这些行不会被误删:

# 定义筛选条件:第9列(X)>=96.5 且 第12列(Y)>96
condition = (df.iloc[:, 9] >= 96.5) & (df.iloc[:, 12] > 96)
# 删除满足条件的行
df = df.drop(df[condition].index)

注意事项

  • 确认索引对应关系:Pandas的索引是从0开始计数的,如果你的“第9列”是从1开始数的(比如Excel表格里的第9列),要把代码里的9改成8,12改成11,避免选到错误的列。
  • 验证列正确性:可以先执行print(df.iloc[:, 9].head()),确认输出的是你需要的X列数据。
  • NA行保留逻辑:当X或Y为NA时,condition会返回False,所以这些行不会被纳入删除范围,完全符合你保留重要NA行的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:05:26