df.head() 和 df.head 有什么区别?

新手上路,请多包涵

在 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 许可协议

阅读 1.4k
1 个回答

这些不仅仅是“细微差别”。您实际上根本没有用 df.head 取头。

df.head() 实际上是数据帧的头部。您可以看到输出只有 5 行:

 >>> 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 只是 --- 数据 df head 方法的方法对象。括号是实际调用该方法所必需的。方法对象的 repr 基本上是

f"<bound method {classname}.{methodname} of {object!r}"

在适当的地方替换对象的类名、方法名和 repr 。看起来像数据帧的输出部分实际上是原始 reprdf 。它有 10 行而不是 5 行,因为它是整个原始数据框,而不是头部。

原文由 user2357112 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题