在 Jupyter Notebook 或终端中, df.head 和 df.head() 都可以返回数据帧的输出,但有一些细微差别。这两种不同的表达式之间的根本区别是什么?通常括号在 Python 中扮演什么角色?谢谢!
>>>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
原文由 Jason Hu 发布,翻译遵循 CC BY-SA 4.0 许可协议
这些不仅仅是“细微差别”。您实际上根本没有用
df.head
取头。df.head()
实际上是数据帧的头部。您可以看到输出只有 5 行:相反,
df.head
只是 --- 数据df
head
方法的方法对象。括号是实际调用该方法所必需的。方法对象的repr
基本上是在适当的地方替换对象的类名、方法名和
repr
。看起来像数据帧的输出部分实际上是原始repr
的df
。它有 10 行而不是 5 行,因为它是整个原始数据框,而不是头部。