TypeError: 'Series' object is not callable when accessing dtypes of a dataframe

后端 未结 1 682
失恋的感觉
失恋的感觉 2021-01-29 15:11

What the hell? I didn\'t change the keyword to reading the text file I have on my directory.

Yet I can\'t check the dtype of each columns by the two methods that I know

1条回答
  •  清歌不尽
    2021-01-29 15:49

    There's no ambiguity here. file is a dataframe, and dtypes is an attribute.

    df
            productView  order
    userId                    
    A               4.5    5.0
    B               1.5    2.5
    C               4.0    2.0
    D               2.0    3.0
    
    df.dtypes
    productView    float64
    order          float64
    dtype: object
    

    When you access dtypes, a Series is returned:

    type(df.dtypes)
    pandas.core.series.Series
    

    When you call df.dtypes(), you are effectively doing series = df.dtype; series() which is invalid, since series is an object (not a function, or an object with __call__ defined).

    In the second case, dtype isn't even a valid attribute/method of df, and so an AttributeError is raised.

    TLDR; The first error is raised on the dtype series, the second is raised on the original dataframe df.

    0 讨论(0)
提交回复
热议问题