带有和不带有括号的python pandas函数

发布于 2021-01-29 15:00:39

我注意到,如果使用许多不带括号的DataFrame函数,其行为似乎类似于“属性”,例如

In [200]: df = DataFrame (np.random.randn (7,2))

In [201]: df.head ()
Out[201]: 
      0         1
   0 -1.325883  0.878198
   1  0.588264 -2.033421
   2 -0.554993 -0.217938
   3 -0.777936  2.217457
   4  0.875371  1.918693

In [202]: df.head 
Out[202]: 
<bound method DataFrame.head of           0         1
   0 -1.325883  0.878198
   1  0.588264 -2.033421
   2 -0.554993 -0.217938
   3 -0.777936  2.217457
   4  0.875371  1.918693
   5  0.940440 -2.279781
   6  1.152370 -2.733546>

这是如何完成的,是一种好的做法?这是Linux上的熊猫0.15.1

关注者
0
被浏览
112
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    它们是不同的,因此不建议使用,它们清楚地表明这是一种方法并且恰好输出结果,而另一种则表明了预期的输出。

    这就是为什么您不应该这样做的原因:

    In [23]:
    
    t = df.head
    In [24]:
    
    t.iloc[0]
    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    <ipython-input-24-b523e5ce509d> in <module>()
    ----> 1 t.iloc[0]
    
    AttributeError: 'function' object has no attribute 'iloc'
    
    In [25]:
    
    t = df.head()
    t.iloc[0]
    Out[25]:
    0    0.712635
    1    0.363903
    Name: 0, dtype: float64
    

    所以好吧,您没有使用括号正确地调用该方法并看到显示为有效的输出,但是如果您引用了该引用并尝试使用它,那么您将对方法进行操作,而不是对df的切片进行操作你打算做什么



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看