1

我正在尝试运行此命令:

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

我认为这意味着它已在较早的记录中被删除。(这是因为一个类似的早期命令解决了一个不同的领域)

我在这里错过了什么吗?

4

1 回答 1

2

在 pandas 中执行此操作的常用方法是使用布尔掩码:

ipums = ipums[ipums['wkswork1'] != 0]

您也可以使用 a~来否定掩码。

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

于 2013-10-03T06:41:33.607 回答