簡體   English   中英

Python中的Groupby和Plot條形圖

[英]Groupby and Plot bar graph in Python

我想繪制一年中銷售額的條形圖。 x軸為'year' ,y軸為每年每周銷售額的總和。 在策划時我得到'KeyError: 'year' 我想這是因為'year'成為了分組中的指數。

以下是來自csv文件的示例內容:

Store   year    Weekly_Sales
1   2014    24924.5
1   2010    46039.49
1   2015    41595.55
1   2010    19403.54
1   2015    21827.9
1   2010    21043.39
1   2014    22136.64
1   2010    26229.21
1   2014    57258.43
1   2010    42960.91

下面是我用來分組的代碼

storeDetail_df = pd.read_csv('Details.csv')
result_group_year= storeDetail_df.groupby(['year'])
total_by_year = result_group_year['Weekly_Sales'].agg([np.sum])

total_by_year.plot(kind='bar' ,x='year',y='sum',rot=0)

更新了代碼,下面是輸出: DataFrame輸出:

   year          sum
0  2010  42843534.38
1  2011  45349314.40
2  2012  35445927.76
3  2013         0.00

下面是我得到的圖表: 在此輸入圖像描述

在讀取csv文件時,需要使用空格作為delim_whitespace=True的分隔符,然后在Weekly_Sales后重置索引。 以下是工作代碼:

storeDetail_df = pd.read_csv('Details.csv', delim_whitespace=True)
result_group_year= storeDetail_df.groupby(['year'])
total_by_year = result_group_year['Weekly_Sales'].agg([np.sum]).reset_index()
total_by_year.plot(kind='bar' ,x='year',y='sum',rot=0,  legend=False)

產量

在此輸入圖像描述

如果由於逐個命令而使您的索引成為年份。 在繪圖之前,您需要將其作為索引刪除。 嘗試

total_by_year = total_by_year.reset_index(drop=False, inplace=True)

你可能想試試這個

storeDetail_df = pd.read_csv('Details.csv')
result_group_year= storeDetail_df.groupby(['year'])['Weekly_Sales'].sum()

result_group_year = result_group_year.reset_index(drop=False)
result_group_year.plot.bar(x='year', y='Weekly_Sales')

暫無
暫無

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

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