[英]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.