pandas - 多个类别的情节条形图

时间:2016-05-09 21:20:48

标签: python pandas plot data-science

我有这个数据框:

列:

Countries
IsVertical

示例:

USA FALSE
USA FALSE
Poland FALSE
Italy TRUE
Italy TRUE

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

我尝试过这样的事情:

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

问题是它没有给我2个IsVertical foreach国家的酒吧,并且它只计算IsVertical出现的次数并且不计算IsVertical的总数

解决方案:

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

    result.plot(kind='bar')

1 个答案:

答案 0 :(得分:1)

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