使用主键从两个 Excel 工作表绘制分组条形图?
Plotting a grouped bar chart from two Excel sheets with a primary key?
我有两张 Excel 工作表如下:
我需要在分组条形图中绘制每个 Region
(区域 1、区域 2、..)中每个 Grade
(A、B、C、..)的计数。
我使用 pandas 加载了两张纸,如下所示:
xl = pd.ExcelFile("D:/Works.xlsx")
df = xl.parse("Sheet1")
ds = xl.parse("Sheet2")
然后我将工作表合并到一个数据框中:
data_set = pd.merge(df, ds, how='left')
DataFrame data_set
被复制为:
data_set = pd.DataFrame({'Center_ID': ['E25007','E08003','E17020','E08004','E25007','E08035','E08614','E08026','E25023','E17006','E25007','E08004'],
'Grade': ['A', 'B', 'B', 'A', 'C', 'F', 'A', 'A', 'E', 'F', 'C', 'B'],
'Name': ['Jack','Eliana','Frank','Sheila','Irene','Celine','Sebastian','Teun','Silvia','Luis','Catalina','Patricia'],
'Region': ['Region1',None,'Region4','Region3','Region1','Region2','Region2','Region3','Region3','Region2','Region1','Region3'],
'Sector': ['Sector1',None,'Sector1','Sector3','Sector1','Sector1','Sector3','Sector2','Sector1','Sector2','Sector1','Sector3']})
接下来我该怎么做才能创建分组条形图?
您可以通过两种方式获得所需的输出。分组:
data_set.groupby(['Region','Grade'])['Grade'].count().unstack('Grade').fillna(0).plot(kind='bar')
或stacked
:
data_set.groupby(['Region','Grade'])['Grade'].count().unstack('Grade').fillna(0).plot(kind='bar',stacked=True)
谢谢!
我有两张 Excel 工作表如下:
我需要在分组条形图中绘制每个 Region
(区域 1、区域 2、..)中每个 Grade
(A、B、C、..)的计数。
我使用 pandas 加载了两张纸,如下所示:
xl = pd.ExcelFile("D:/Works.xlsx")
df = xl.parse("Sheet1")
ds = xl.parse("Sheet2")
然后我将工作表合并到一个数据框中:
data_set = pd.merge(df, ds, how='left')
DataFrame data_set
被复制为:
data_set = pd.DataFrame({'Center_ID': ['E25007','E08003','E17020','E08004','E25007','E08035','E08614','E08026','E25023','E17006','E25007','E08004'],
'Grade': ['A', 'B', 'B', 'A', 'C', 'F', 'A', 'A', 'E', 'F', 'C', 'B'],
'Name': ['Jack','Eliana','Frank','Sheila','Irene','Celine','Sebastian','Teun','Silvia','Luis','Catalina','Patricia'],
'Region': ['Region1',None,'Region4','Region3','Region1','Region2','Region2','Region3','Region3','Region2','Region1','Region3'],
'Sector': ['Sector1',None,'Sector1','Sector3','Sector1','Sector1','Sector3','Sector2','Sector1','Sector2','Sector1','Sector3']})
接下来我该怎么做才能创建分组条形图?
您可以通过两种方式获得所需的输出。分组:
data_set.groupby(['Region','Grade'])['Grade'].count().unstack('Grade').fillna(0).plot(kind='bar')
或stacked
:
data_set.groupby(['Region','Grade'])['Grade'].count().unstack('Grade').fillna(0).plot(kind='bar',stacked=True)
谢谢!