2017-02-19 55 views
-1

下面是我的數據集看起來像:Python組由多列組成並繪製結果?

Levels  Role  Status 
ABC  SE  Open 
XYZ  SSE  Closed 
KYZ  LA  Closed 

這裏我的要求是讓每個「等級」計數和每個「角色」其中狀態「關閉」

我使用下面的代碼來獲得所需的結果。

df[df['Status'] == 'Closed'].groupby(['Levels','Role']).size() 

現在我想繪製這些結果。我如何繪製這些結果。它需要自我解釋。什麼樣的情節最適合我的要求。

我是可視化部分的新手。

謝謝

回答

1

如果你不知道如何可視化結果,其他人應該如何知道。但某種通用的方法可能會創建一個數據透視表,其中可以使用其中一個類別作爲列,另一個作爲索引,然後繪製它的條形圖。

import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 

levels=["ABC", "XYZ", "KYZ", "KYZ"] 
roles = ["SE", "SSE", "LA", "SSE"] 
status = ["Open", "Closed", "Closed", "Closed"] 

df=pd.DataFrame({"Levels" : levels, "Role":roles, "Status":status}) 

df2 = df[df['Status'] == 'Closed'].groupby(['Levels','Role']).size().reset_index(name='Count') 
df3 = pd.pivot_table(df2, values='Count', columns=['Levels'], index = "Role", 
         aggfunc=np.sum, fill_value=0) 

df3.plot(kind="bar") 
plt.show() 

enter image description here

+0

我的道歉。我的意思是,哪種方法可以更好地形象化這種結果,因此很容易理解。謝謝。它對我來說很好。只有一件事,我的級別列中有超過50個值,因爲它是重疊的。有什麼辦法來處理這個。 – Niranjanp

+0

什麼是重疊?如果是關於圖例,減少字體大小和增加圖片大小可能會有所幫助。如果角色的可能條目較少,您還可以交換級別和角色。不同類型的情節也可能更適合,但同樣需要大致瞭解最終情節應該如何,否則我們在黑暗中進行挖掘。 – ImportanceOfBeingErnest

+0

謝謝。根據我的要求,這種情節似乎很好。我已經添加了這一行'plt.legend(bbox_to_anchor =(0。,1.02,1.,.108),loc = 3,ncol = 8,borderaxespad = 0.3)'。傳說現在是可讀的。只有酒吧作爲顏色的問題不能很好地區分。不管怎樣,再次感謝。 – Niranjanp