这个问题与我提出的another密切相关,但我觉得这是两个不同的问题。
这是两行独立的代码。我认为他们应该产生相同的结果,但不明白为什么第一个抛出异常。我怀疑第一种方式是“不正确的”某种方式,但不知道为什么......
df.loc[df.year.notnull(),['year']] # LINE 1: throws "MemoryError" (see below) df.loc[df.year.notnull()].year # LINE 2: WORKS FINE
关于抛出异常的更多信息:
../lib/python2.7/site-packages/pandas/core/index.pyc in get_indexer_non_unique(self, target, **kwargs) 843 tgt_values = target.values 844 --> 845 indexer, missing = self._engine.get_indexer_non_unique(tgt_values) 846 return Index(indexer), missing 847
抱歉,我还没弄清楚如何使用玩具示例重现错误。我的DataFrame“df”有100,000行和17列。它是从更大的数据帧(1,000,000行和89列)中采样的。使用read_csv和index_col = False创建了更大的数据帧。我不确定这些信息是否相关。