对按降序分组的条形图值进行排序

时间:2019-04-29 17:13:31

标签: python pandas dataframe

我遇到了一个问题,即我无法使条形图以按区域分组的列的降序显示。

我试图对这些值进行排序,然后进行分组并在条形图上进行绘制。

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))

该图仍按区域按字母顺序绘制值。 enter image description here

1 个答案:

答案 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的进一步调用将按预期显示分组和排序的数据帧。