In Jupyter Notebook or terminal, both df.head and df.head() can return an output of the dataframe, with some minor differences. What's the fundamental difference between the two different expressions and what role does parenthesis play in Python in general? Thanks!
>>>df.head
<bound method NDFrame.head of Date Open High Low Close Volume
0 1-Jun-17 153.17 153.33 152.22 153.18 16404088
1 2-Jun-17 153.58 155.45 152.89 155.45 27770715
2 5-Jun-17 154.34 154.45 153.46 153.93 25331662
3 6-Jun-17 153.90 155.81 153.78 154.45 26624926
4 7-Jun-17 155.02 155.98 154.48 155.37 21069647
5 8-Jun-17 155.25 155.54 154.40 154.99 21250798
6 9-Jun-17 155.19 155.19 146.02 148.98 64882657
7 12-Jun-17 145.74 146.09 142.51 145.42 72307330
8 13-Jun-17 147.16 147.45 145.15 146.59 34165445
9 14-Jun-17 147.50 147.50 143.84 145.16 31531232
10 15-Jun-17 143.32 144.48 142.21 144.29 32165373
>>> df.head()
Date Open High Low Close Volume
0 1-Jun-17 153.17 153.33 152.22 153.18 16404088
1 2-Jun-17 153.58 155.45 152.89 155.45 27770715
2 5-Jun-17 154.34 154.45 153.46 153.93 25331662
3 6-Jun-17 153.90 155.81 153.78 154.45 26624926
4 7-Jun-17 155.02 155.98 154.48 155.37 21069647
df. head() Returns the first 5 rows of the dataframe. To override the default, you may insert a value between the parenthesis to change the number of rows returned. Example: df.
The major difference between sample, head, and the tail is: on passing the empty arguments sample returns only one row whereas the head and tail return 5 rows. A sample returns unordered data, whereas head and tail return ordered data.
Head(): Function which returns the first n rows of the dataset. Tail(): Function which returns the last n rows of the dataset.
Head & Tail To view a small sample of a Series or the DataFrame object, use the head() and the tail() methods. head() returns the first n rows(observe the index values). The default number of elements to display is five, but you may pass a custom number. tail() returns the last n rows(observe the index values).
Those aren't just "minor differences". You didn't actually take the head at all with df.head
.
df.head()
actually takes the head of the dataframe. You can see that the output only has 5 rows:
>>> df.head()
Date Open High Low Close Volume
0 1-Jun-17 153.17 153.33 152.22 153.18 16404088
1 2-Jun-17 153.58 155.45 152.89 155.45 27770715
2 5-Jun-17 154.34 154.45 153.46 153.93 25331662
3 6-Jun-17 153.90 155.81 153.78 154.45 26624926
4 7-Jun-17 155.02 155.98 154.48 155.37 21069647
In contrast, df.head
is just a method object for the head
method of the dataframe df
. The parentheses are needed to actually call the method. The method object's repr
is basically
f"<bound method {classname}.{methodname} of {object!r}"
with the class name, method name, and repr
of the object substituted in the appropriate places. The part of the output that looks like a dataframe is, in fact, the repr
of the original df
. It has 10 rows instead of 5 because it's the whole original dataframe, not the head.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With