打印循环中的列的value_counts

时间:2018-07-11 13:54:23

标签: python pandas bokeh

我正在使用bokeh来打印多列的水平条形图。我用同样的循环。这是代码,但是当我运行它时。我得到这个错误。我是散景的初学者。请帮忙。

chart_cols = ['respondent_age respondent_gender respondent_edu respondent_occupation Religion Caste_cat CM_choice Likely_winner'.split()]
chart_cols
for f in chart_cols:
    count = df[f].value_counts()

    p = figure(plot_height=400, plot_width=400, title='Chart',toolbar_location=None)

    p.title.align = "right"
    p.xaxis.axis_label = 'Number of respondents'
    p.yaxis.axis_label = 'Something'

    p.hbar(y=sorted(df[f].unique()), height=0.7, left=0,
          right=count, color=Category20,
           alpha=0.7)
    show(p)
    print('Done')

AttributeError: 'DataFrame' object has no attribute 'value_counts'

要编写上述代码,我使用了bokeh文档和我可以使用的数据。我尝试过

使用.运算符,但错误相同。在这种情况下,它说没有.属性 例如df.f.value_counts()

我在做什么错?请帮忙。

1 个答案:

答案 0 :(得分:1)

您的chart_cols中有一对额外的方括号。将第一行替换为

chart_cols = 'respondent_age respondent_gender respondent_edu respondent_occupation Religion Caste_cat CM_choice Likely_winner'.split()