我需要帮助从数据框中绘制条形图

时间:2021-03-05 07:21:05

标签: python dataframe plot bar-chart

我有以下数据框:

    AQI         Year     City
0   349.407407  2015    'Patna'
1   297.024658  2015    'Delhi'
2   283.007605  2015    'Ahmedabad'
3   297.619178  2016    'Delhi'
4   282.717949  2016    'Ahmedabad'
5   250.528701  2016    'Patna'
6   379.753623  2017    'Ahmedabad'
7   325.652778  2017    'Patna'
8   281.401216  2017    'Gurugram'
9   443.053221  2018    'Ahmedabad'
10  248.367123  2018    'Delhi'
11  233.772603  2018    'Lucknow'
12  412.781250  2019    'Ahmedabad'
13  230.720548  2019    'Delhi'
14  217.626741  2019    'Patna'
15  214.681818  2020    'Ahmedabad'
16  181.672131  2020    'Delhi'
17  162.251366  2020    'Patna'

我想对每年的数据进行分组,即 x 轴上的 2015、2016、2017、2018...2020 年,y 轴上的 AQI。我是新手,请原谅我的问题缺乏深度。

1 个答案:

答案 0 :(得分:0)

您可以"pivot"您的数据来支持您想要的绘图输出。这里我们将行设置为 Year,列设置为 City,将值设置为 AQI

pivot = pd.pivot_table(
    data=df,
    index='Year',
    columns='City',
    values='AQI',
)
<头>
艾哈迈达巴德 德里 古尔根 勒克瑙 巴特那
2015 283.007605 297.024658 NaN NaN 349.407407
2016 282.717949 297.619178 NaN NaN 250.528701
2017 379.753623 NaN 281.401216 NaN 325.652778
2018 443.053221 248.367123 NaN 233.772603 NaN
2019 412.781250 230.720548 NaN NaN 217.626741
2020 214.681818 181.672131 NaN NaN 162.251366

然后你可以直接绘制这个数据透视表:

pivot.plot.bar(xlabel='Year', ylabel='AQI')

enter image description here


旧答案

您是否在寻找每年的平均 AQI?如果是这样,您可以进行一些 Pandas 链接,假设您的数据位于 DataFrame df 中:

df.groupby('Year').mean().plot.bar(xlabel='Year', ylabel='AQI')

aqi_groupby_year