在下面的代码中,我将csv文件导入Python的pandas库并显示前5行,并查询pandas数据帧的“形状”。
head()
为什么 head
方法在shape
之后需要空括号但head
没有?它与他们的类型有关吗?
如果我在没有使用空括号的情况下调用head
,我就不会得到相同的结果。是shape
是一种方法而a = {}
names = [ {'name': 'Bart'}, {'name': 'Lisa'}, {'name': 'Maggie'} ]
for name in names:
a.update(name)
只是一种属性吗?
我怎样才能将上述问题的答案概括为Python的其余部分?我试图在这里学习的不只是熊猫,而是Python。例如,如果_____是这种情况,如果没有提供参数,则必须包括空括号,而对于其他属性,则不包括?
答案 0 :(得分:1)
当您致电data.head()
时,您正在调用对象head(self)
上的方法data
,
但是,当您编写data.shape
时,您正在引用对象data
的公共属性
请记住,方法和对象属性之间存在明显差异。您可以阅读here
答案 1 :(得分:0)
head是一种方法而不是属性的原因很可能与性能有关。如果head是一个属性,那么就意味着每次你争论数据帧时,pandas都必须预先计算数据切片并将其存储在head属性中,这将浪费资源。具有空括号的其他方法也是如此。
在形状的情况下,它作为属性提供,因为此信息对于任何数据框操作都是必不可少的,因此它是预先计算的并且可用作属性。