簡體   English   中英

數據框的條形圖

[英]Bar Chart from Dataframe

我正在處理具有以下示例數據的熊貓數據框(df):

0    Dec-16     N
1    Jan-17     N
2    Feb-17     Y
3    Feb-17     N
4    Jan-17     N
5    Mar-17     Y
6    Mar-17     Y
7    Jan-17     N
8    Jan-17     Y

運用

df_group = df.groupby(['MMM-YY', 'Valid'])

我得到以下輸出:

MMM-YY  Valid
Dec-16      N      1
Feb-17      N      1
            Y      1
Jan-17      N      3
            Y      1
Mar-17      Y      2

我想使用此數據創建條形圖(以Y和N的百分比顯示條形圖),但是很遺憾無法實現。 我試圖將上面的輸出轉換為新的數據框,但是沒有運氣。

解決這個問題的任何指針將不勝感激。

我認為您需要crosstab對每一行進行normalize + DataFrame.plot.bar

df_group = df = pd.crosstab(df['MMM-YY'], df['Valid'], normalize=0) 
print (df_group)
Valid      N     Y
MMM-YY            
Dec-16  1.00  0.00
Feb-17  0.50  0.50
Jan-17  0.75  0.25
Mar-17  0.00  1.00

df_group.plot.bar()

圖形

如果需要按列標准化:

df_group1 = df = pd.crosstab(df['MMM-YY'], df['Valid'], normalize=1) 
print (df_group1)
Valid     N     Y
MMM-YY           
Dec-16  0.2  0.00
Feb-17  0.2  0.25
Jan-17  0.6  0.25
Mar-17  0.0  0.50

df_group1.plot.bar()

圖形

如果僅需要計數值:

df1 = df = pd.crosstab(df['MMM-YY'], df['Valid']) 
print (df1)
Valid   N  Y
MMM-YY      
Dec-16  1  0
Feb-17  1  1
Jan-17  3  1
Mar-17  0  2

df1.plot.bar()

圖形

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM