数据框,Python的百分比图

时间:2019-06-24 16:17:42

标签: python dataframe

我有一个这样的数据框,

df = pd.DataFrame(data=[[1100,1200,1620], 
                    [60,4880,7950],
                    [1100,6878,11564], 
                    [430,15100,52765],
                    [0,6150,63990]],
              columns=['A', 'B', 'Total'],
             index = ['ITEM1', 'ITEM2', 'ITEM3', 'ITEM4', 'ITEM5'])

df.plot.bar() 

如何使用每个ITEM_列上的百分比创建图?

3 个答案:

答案 0 :(得分:1)

我不确定我是否正确回答了您的问题,也无法发表评论。你是这个意思吗?

df.T.plot.bar() 

我只是调换了图的数据框。

Bar chart

答案 1 :(得分:1)

df = pd.DataFrame(data=[[1100,1200,1620], 
                    [60,4880,7950],
                    [1100,6878,11564], 
                    [430,15100,52765],
                    [0,6150,63990]],
              columns=['A', 'B', 'Total'],
             index = ['ITEM1', 'ITEM2', 'ITEM3', 'ITEM4', 'ITEM5'])
df['percA'] = df['A']/df['Total']*100
df['percB'] = df['B']/df['Total']*100
df[['percA', 'percB']].plot(kind='bar')

enter image description here

这是您想要的吗?

答案 2 :(得分:0)

df = pd.DataFrame(data=[[1100, 1200, 1620],
                            [60, 4880, 7950],
                            [1100, 6878, 11564],
                            [430, 15100, 52765],
                            [0, 6150, 63990]],
                      columns=['A', 'B', 'Total'],
                      index=['ITEM1', 'ITEM2', 'ITEM3', 'ITEM4', 'ITEM5'])
    df_col_percent = 100*df /df.sum(0)
    df_item_percent = 100*df.T/df.sum(1)
    df_item_percent.plot(kind='bar')
    df_col_percent.plot(kind='bar')

将绘制正确的百分比(此处其他解决方案假定总计= A + B),我很着急,所以不会添加图图杜卢(pudulu)