Pandas 未文档化的 DataFrame.keys() 方法
我刚开始学习Pandas,在玩它的Dataframe
的时候,发现了一个叫keys()
的方法,它的功能和dict.keys()
差不多。但是我在文档里找不到这个方法。我是不是漏掉了什么?
1 个回答
11
你可以在这个链接中看到这个是怎么定义的:
def keys(self):
return self.columns
如果你查看一下git的变更记录,会发现这个是作为对#1240: "请求:在dataFrame上添加keys()方法"的修复而添加的。添加这个方法的原因似乎是:
在学习Pandas的时候,这种方法可以帮助我们从大家熟悉的字典结构过渡到更强大的DataFrame。作为一个Pandas新手,这种思维上的转换会很受欢迎。
不过,需要注意的是,DataFrame
只支持大约一半的映射接口。例如,有iteritems
和keys
,但没有iterkeys
。还有一些类似但不完全相同的名称,比如iterkv
,它和iteritems
是等价的,但之所以存在是因为后者在2to3转换时“被错误地转换成了.items()”。
你可以查看源代码,了解这些方法是如何添加的以及原因,但似乎没有太多的逻辑可言,除了“DataFrame
有点像dict
,但又不完全是”。
他们选择不记录大多数这些方法,或者不说明DataFrame
有点像dict
,所以我不建议依赖这些。直接使用columns
代替keys()
等方法就可以了。