我有以下数据框:
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。我是新手,请原谅我的问题缺乏深度。
答案 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')
您是否在寻找每年的平均 AQI?如果是这样,您可以进行一些 Pandas 链接,假设您的数据位于 DataFrame df
中:
df.groupby('Year').mean().plot.bar(xlabel='Year', ylabel='AQI')