Pandas 未文档化的 DataFrame.keys() 方法

0 投票
1 回答
5863 浏览
提问于 2025-04-17 14:53

我刚开始学习Pandas,在玩它的Dataframe的时候,发现了一个叫keys()的方法,它的功能和dict.keys()差不多。但是我在文档里找不到这个方法。我是不是漏掉了什么?

1 个回答

11

你可以在这个链接中看到这个是怎么定义的:

def keys(self):
    return self.columns

如果你查看一下git的变更记录,会发现这个是作为对#1240: "请求:在dataFrame上添加keys()方法"的修复而添加的。添加这个方法的原因似乎是:

在学习Pandas的时候,这种方法可以帮助我们从大家熟悉的字典结构过渡到更强大的DataFrame。作为一个Pandas新手,这种思维上的转换会很受欢迎。

不过,需要注意的是,DataFrame只支持大约一半的映射接口。例如,有iteritemskeys,但没有iterkeys。还有一些类似但不完全相同的名称,比如iterkv,它和iteritems是等价的,但之所以存在是因为后者在2to3转换时“被错误地转换成了.items()”。

你可以查看源代码,了解这些方法是如何添加的以及原因,但似乎没有太多的逻辑可言,除了“DataFrame有点像dict,但又不完全是”。

他们选择不记录大多数这些方法,或者不说明DataFrame有点像dict,所以我不建议依赖这些。直接使用columns代替keys()等方法就可以了。

撰写回答