2017-10-07 56 views
2

在下面的代码中,我将一个csv文件导入到Python的熊猫库中,并显示前5行,并查询熊猫数据框的'形状'。为什么`head`需要`()`和`shape`不需要?

import pandas as pd 
data = pd.read_csv('my_file.csv') 
data.head() #returns the first 5 rows of the dataframe 
data.shape # displays the # of rows and # of columns of dataframe 
  1. 为什么是认为head()方法需要空括号head之后,但shape不?它与它们的类型有关吗? 如果我打电话给head而没有使用空括号跟着它,我不会得到相同的结果。 head是一种方法,shape只是一个属性?

  2. 我怎样才能将上述问题的答案概括为Python的其余部分?我想学习的不只是熊猫,而是一般的Python。例如,一个句子,如“当_____情况下,一个必须包括空括号是否将提供任何参数,但对于其他属性一个不就得了?

+0

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.head.html – Wen

+1

*这是'head'是一种方法,'shape'只是一个属性?* * *是。** – zondo

+0

@zondo。谢谢。 “属性”和“属性”之间有什么区别? – Semihcan

回答

0

阅读起来的原因,头部的方法,而不是一个属性是最有可能与业绩有关。在盒头将那岂不是每次缠斗一个数据帧时,大熊猫将不得不预先计算数据的切片,并将其存储在头属性,这将是浪费资源的属性。其他方法与空括号相同。

在形状的情况下,由于该信息是任何数据帧的操作必需因此它被预先计算,并可用作为一个属性设置作为一个属性。

1

当你调用你在对象上data调用方法head(self)

但是,当你写data.shape,你引用的对象的公共属性data

这是好事,记住,方法和对象属性之间有明显的区别。你可以在它here