在pandas中,AttributeError: 'function' object has no attribute 'bar'。

4
我有一个 pandas 数据帧,它的类型是如下所示的 pandas 数据帧类型。
type(df)

Out[176]:

pandas.core.frame.DataFrame

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

df.plot.bar()

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

其他函数,如箱线图或直方图也无法工作。有任何想法是为什么吗?


如果plot是一个函数,那么df.plot().bar()会产生什么影响? - Vadim Key
文档中语法应该是 df.plot.bar() 而不是 df.plot().bar()。 - Baktaawar
但是运行时显示这是函数,所以值得一试 :) - Vadim Key
你的东西能运行,但为什么?在上面的文档中写着没有函数的情况下绘图。 - Baktaawar
可能文档中有错误,或者文档已经过时了。 - Vadim Key
显示剩余2条评论
2个回答

2

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

该代码可以帮助您绘制图表。


1
有趣的是,对我来说它非常有效:

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')

graph

编辑(通过聊天中的讨论):

我认为您需要箱线图

#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))

graph


没有df是另一个数据框。不是这个。它是一个有12列的较大的数据框,其中一列是“ab”。我想做的是对该数据框中的列按“ab”列堆叠或分组进行条形图和箱线图。但是当我执行df.plot.bar或df.plot.box时,会出现上述错误。 - Baktaawar
请看这里。2]:df.shape输出[182]:(50000, 13) - Baktaawar
df.ab.plot.bar() 不起作用。但是 df.ab.plot().bar() 会有一些结果。但不是正确的条形图。比如 ab 有两个值 1 和 0。我想绘制它们的计数条形图,但只使用 df 数据框中的 ab 列。 - Baktaawar
我在回答中添加了新的代码片段,希望它能够正常工作。但是可能会显示错误的图表。我认为你需要将列设置为 01index,然后尝试 df.ab.plot(kind='bar')。但如果这样还不行的话,最好在问题中添加你的 DataFrame 示例。 - jezrael
它是0.15.2版本。好的,我刚刚复制了你的第一个答案。df = pd.DataFrame({'ab': {0: 31196, 1: 18804}}) print dfdf.plot.bar()它给了我相同的错误。函数没有属性。即使是df.plot().bar()也会出错。bar需要三个参数。这真的让人非常沮丧。 - Baktaawar
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接