什么是使用pandas .loc访问器选择行和“放大器”的“正确”方法。 DataFrame中的列?

时间:2013-07-16 22:07:16

标签: pandas

这个问题与我提出的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创建了更大的数据帧。我不确定这些信息是否相关。

0 个答案:

没有答案