python - 对已按降序分组的条形图值进行排序
问题描述
我遇到了一个问题,我无法让我的条形图以按区域分组的列的降序显示。
我试图对这些值进行排序,然后分组并绘制在条形图上。
df1 = df.drop(['Total Volume', '4046', '4225', '4770', 'Total Bags', 'Small Bags', 'Large Bags', 'XLarge Bags', 'year', 'Unnamed: 0', 'Date'], axis=1)
df1 = df1.sort_values(['AveragePrice'],ascending=True).groupby('region').mean().plot(kind='bar', figsize=(15,5))
解决方案
首先对值进行分组,然后排序并更改ascending=True
为False
:
df1 = df1.groupby('region').mean().sort_values(['AveragePrice'],ascending=False).plot(kind='bar', figsize=(15,5))
此外,该代码将覆盖df1
为 Matplotlib 子图,而不是更新数据框。进一步调用df1
将只输出类型 ( matplotlib.axes._subplots.AxesSubplot
) 而不是显示数据框。
要df1
使用分组和排序的数据框进行更新,您应该首先操作数据框并保存它,然后在更新的数据框上调用 plot ,如下所示:
# Manipulate the dataframe
df1 = df1.groupby('region').mean().sort_values(['AveragePrice'],ascending=False)
# Plot the results
df1.plot(kind='bar', figsize=(15,5))
这样,进一步调用df1
将按预期显示分组和排序的数据帧。
推荐阅读
- python - “NameError:当我尝试在 Python3 中使用该变量时,未定义名称‘响应’
- powershell - 在 rdlc 报告中使用表达式时需要哪个 Rreportviewer dll
- javascript - 类和模块之间的JS数据传输
- c# - .Netcore WebApi 将用户错误返回给要显示给用户的 vue 应用程序......可能已经将自己编码到角落寻找更好的答案
- python - 在python中写出确切的日期
- angularjs - 如何在 Azure DevOps 中执行“ng build”命令?
- javascript - 强制在所有屏幕上仅显示桌面版本
- reactjs - 当您来自网站中的标签时,如何获取以前的网站网址?
- python - 在多应用网站上使用 Ploty Dash-Extensions 库
- hadoop - NoSuchMethod HiveDecimalWritable
(J)V