numpy在where查询中返回已删除索引的记录

numpy在where查询中返回已删除索引的记录,numpy,pandas,Numpy,Pandas,我正在尝试运行此命令: ipums = ipums.drop(np.where(ipums['wkswork1'] == 0)[0]) 但我得到了一个错误: raise ValueError('labels %s not contained in axis' % labels[mask]) 我检查ipums数据集中是否有数组中返回的值: ipums[207] 我得到: File "index.pyx", line 128, in pandas.index.IndexEngine.get

我正在尝试运行此命令:

ipums = ipums.drop(np.where(ipums['wkswork1'] == 0)[0])
但我得到了一个错误:

raise ValueError('labels %s not contained in axis' % labels[mask])
我检查ipums数据集中是否有数组中返回的值:

ipums[207]
我得到:

  File "index.pyx", line 128, in pandas.index.IndexEngine.get_loc (pandas/index.c:3542)
  File "index.pyx", line 138, in pandas.index.IndexEngine.get_loc (pandas/index.c:3322)
  KeyError: 207
我想这意味着它在以前的记录中被删除了。(这是因为之前的一个类似命令针对不同的字段)


我在这里遗漏了什么吗?

在熊猫中,通常的做法是使用布尔掩码:

ipums = ipums[ipums['wkswork1'] != 0]
您还可以使用
~
对遮罩进行消噪

出现此错误是因为当使用numpy时,它返回行的整数位置,而不是标签,这意味着您不能使用(因为它使用标签)