【问题标题】:AttributeError: 'function' object has no attribute 'bar' in pandasAttributeError:'function'对象在熊猫中没有属性'bar'
【发布时间】:2016-08-19 18:43:11
【问题描述】:

我有一个熊猫数据框,它是熊猫数据框类型,如下所示

type(df)

Out[176]:

pandas.core.frame.DataFrame

但是,当我尝试在此数据框上使用任何绘图函数(如条形图)时,会出现如下错误;

df.plot.bar()

AttributeError: 'function' object has no attribute 'bar'

箱形图或 hist 等其他功能也不起作用。知道为什么吗?

【问题讨论】:

  • 如果plot是函数,df.plot().bar()会有什么影响?
  • 文档中的语法是 df.plot.bar() 而不是 df.plot().bar()
  • 但运行时说这是函数,所以值得一试:)
  • 你的东西有效,但为什么呢?在上面的文档中,它说没有函数的情节

标签: python pandas


【解决方案1】:

如果您想绘制特定的列,可以尝试: df.plot(x='x', y='y', kind='bar')

【讨论】:

    【解决方案2】:

    有趣,对我来说效果很好:

    df = pd.DataFrame({'ab': {0: 31196, 1: 18804}})
    print df
    
          ab
    0  31196
    1  18804
    
    #New in version 0.17.0.
    df.plot.bar()
    

    另一种选择:

    df.plot(kind='bar')
    

    编辑(通过chat 讨论):

    我觉得你需要boxplot:

    #filter columns
    df = df.drop(['city','last_trip_date','phone','signup_date','user_red'], axis=1)
    print df
       Retained  avg_dist  avg_increase  avg_price  avg_value   pct  \
    0         1      3.67           1.1        5.0        4.7  15.4   
    1         0      8.26           1.0        5.0        5.0   0.0   
    2         0      0.77           1.0        5.0        4.3   0.0   
    
       trips_in_first_30_days  weekday_pct  
    0                     4.0         46.2  
    1                     0.0         50.0  
    2                     3.0        100.0  
    
    df.boxplot(by='Retained', layout=(7,1), figsize=(5,15))
    

    【讨论】:

    • 没有 df 是另一个数据框。不是这个。这是一个更大的数据框,有 12 列,其中一列是“ab”。我想做的是我想做这个 df 中的列的条形图和箱形图,这些列堆叠或按“ab”列分组。但是当我做 df. plot.bar 或 df.plot.box 任何它给我的上述错误
    • 看这个。 2]: df.shape Out[182]: (50000, 13)
    • df.ab.plot.bar() 不起作用。但是 df.ab.plot().bar() 给出了一些东西。但不是正确的条形图。就像 ab 有两个值 1 和 0。我想用它们的计数绘制 1 和 0 的条形图,但只是使用 ab 作为 df 数据框的列
    • 我添加了新的 sn-p 来回答,我希望它有效。但也许它显示不好的图表。我认为您需要将带有01 的列设置为index,然后尝试df.ab.plot(kind='bar')。但最好的办法是添加您的DataFrame 的样本来质疑它是否不起作用。
    • 你的pandas是什么版本的?
    猜你喜欢
    • 2020-06-23
    • 2019-10-02
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 2022-01-26
    • 2019-05-17
    相关资源
    最近更新 更多