我遇到了一个问题,即我无法使条形图以按区域分组的列的降序显示。
我试图对这些值进行排序,然后进行分组并在条形图上进行绘制。
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))
答案 0 :(得分:0)
首先将值分组,然后将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
的进一步调用将按预期显示分组和排序的数据帧。