大熊猫项目类别的火鸡

时间:2016-04-06 12:44:48

标签: python pandas

我是大熊猫的新手,不知道如何绘制每个类别(6,7)的条形图,显示以下数据框中“湿”与其他州的比例(百分比):

Mine    Category    State
X23 6   Wet
M34 7   Wet
K28 7   Dry
U56 7   Swampy
S90 6   Wet
E35 7   Dry
X67 6   Wet

到目前为止我的努力:

sub =df.groupby(['Category','State==Wet'].sum()
sub.plot(kind='bar')

有人可以帮忙吗?感谢

编辑:这是要绘制的数据框输出

Category    Percent “wet”   Percent “non wet”
6   3/3 (100%)  0/3 (0%)
7   1/4 ¾ ( 75 %)

在x轴上为6和7,然后在每个条形(6)和条形(7)中湿润和非湿润堆叠。

2 个答案:

答案 0 :(得分:1)

您可以将自定义功能f1DataFrame constructorT一起使用:

def f1(x):
    return (sum(x == 'Wet') / float(len(x)))*100, (sum(x != 'Wet') / float(len(x)))*100

grouped = df.groupby(['Category'])['State'].apply(f1)

new_cols = ['wet','non-wet']
print pd.DataFrame(zip(*grouped), columns=grouped.index,index=new_cols).T
            wet  non-wet
Category                
6         100.0      0.0
7          25.0     75.0

sub.plot(kind='bar')

答案 1 :(得分:0)

您可以使用value_counts()然后绘制结果。在我的Dataframe中,我想为TestGroup列执行此操作,但您可以使用Category列。

df.TestGroup.value_counts(normalize= True).plot(kind = "bar")

enter image description here

希望有所帮助。