2017-10-07 101 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