0

我是 Pandas 的新手,在玩它的时候Dataframe,我发现方法keys()很像dict.keys()但我在docs中找不到它。我错过了什么?

4

1 回答 1

11

您可以查看源代码中定义的位置:

def keys(self):
    return self.columns

而且,如果您查看 git blame,您会发现它是作为#1240: "Request: keys() method on dataFrame"的修复添加的。理由似乎是:

在学习 Pandas 时,这种方法对于从易于理解的 dict 结构转移到更强大的 DataFrame 很有用。作为熊猫新手,这种心理映射将不胜感激。

但是,值得注意的是,DataFrame它只支持大约一半的映射接口。例如,有iteritemsand keys,但没有iterkeys。在某些情况下,他们添加了相似但不完全相同的名称,例如iterkv,这相当于iteritems但特别是因为后者“被 2to3 错误地转换为 .items()”。

您可以浏览源代码并查看每个添加的位置以及添加原因,但似乎没有太多的押韵或理由超出“DataFrame有点像 a dict,有点不像”。

事实上,他们选择不记录这些方法中的大多数,或者记录DataFrame有点像 a dict,我不会依赖其中的任何一个。只需使用columns代替keys()等。

于 2013-02-05T23:33:22.537 回答