Python中删除指定列特定行报错,求正确实现方案
解决删除指定值行的报错问题
先看你代码里的两个核心问题:
- 语法错误:代码末尾缺少闭合括号,
myretaildata[myretaildata['Nomor #']==['Total Nomor #'].index最后少了),会直接触发语法报错。 - 逻辑错误:
['Total Nomor #'].index是错误用法——列表的index()方法需要传入要查找的元素,你没传参数会触发TypeError;而且你要匹配的是单个字符串值,完全不需要用列表包裹。
正确写法有两种:
方法1:直接筛选保留需要的行(更简洁推荐)
# 保留"Nomor #"列不等于"Total Nomor #"的所有行 myretaildata = myretaildata[myretaildata['Nomor #'] != 'Total Nomor #']
方法2:用drop删除指定索引的行
# 先获取所有符合删除条件的行的索引 to_drop_indices = myretaildata[myretaildata['Nomor #'] == 'Total Nomor #'].index # 删除这些行,inplace=True表示直接修改原DataFrame myretaildata.drop(to_drop_indices, inplace=True)
如果担心误改原数据,方法1可以先复制一份再操作:
filtered_data = myretaildata.copy() filtered_data = filtered_data[filtered_data['Nomor #'] != 'Total Nomor #']
内容的提问来源于stack exchange,提问作者smo0thly
相关产品推荐
相关产品推荐

