pandas - 为多个类别绘制条形图

pandas - plot bar chart for multiple categories

我有这个数据框:

列:

Countries
IsVertical

示例:

USA FALSE
USA FALSE
Poland FALSE
Italy TRUE
Italy TRUE

我想创建一个条形图,每个国家/地区有 2 列(1 列为真,1 列为假 - 来自 IsVertical),我需要 y 轴是该国家/地区出现次数的标准化计数。

我试过这样的事情:

data.groupby("Country").count().plot(kind="bar")

问题是它没有给我每个国家/地区的 2 个 IsVertical 柱,它只计算 IsVertical 出现的次数,而不是除以 IsVertical 的总次数

解决方案:

result = data.groupby('Country').apply(
         lambda group: (group.IsVertical.sum() / float(data.IsVertical.sum()))
     ).to_frame('Vertical')

    result.plot(kind='bar')
result = df.groupby('Countries').apply(
             lambda group: (group.IsVertical == 'TRUE').sum() / 
                            float(group.IsVertical.count())
         ).to_frame('Vertical')

result['NotVertical'] = 1 - result.Vertical
>>> result
           Vertical  NotVertical
Countries                       
Italy             1            0
Poland            0            1
USA               0            1

result.plot(kind='bar')