我有一个看起来像这样的熊猫数据框:
Int64Index: 125 entries, 0 to 124
Data columns (total 5 columns):
Player 125 non-null object
PTS 125 non-null int64
Value 125 non-null object
FG 125 non-null int64
dtypes: int64(2), object(3)
我想使用“值”作为堆栈的图例(堆栈条的不同部分),使用“ FG”作为值(堆栈的每个部分的大小),使用“播放器”来构建堆积的条形图'作为要绘制的每个项目的x轴标签,并按'PTS'对项目进行排序。
我已经能够透视这些数据并以多种不同的方式从中构建条形图,但是它们都无法正确排序。如果我先进行排序,则排序顺序会丢失。我一直无法找到一种方法来将“ PTS”列合并到数据透视图中而不破坏我正在做的事情。
这会构建我想要的条形图,但是没有排序(还不是很漂亮,我以后可以处理):
df.pivot(index='Value', columns='Player', values='FG').T.plot(kind='bar', stacked=True)
考虑在按聚合计算的总PTS降序排列之前,先创建一个播放器列表。然后在数据透视表的列调用中使用此列表:groupby
reindex
# AGGREGATE POINTS --> SORT --> RETRIEVE INDEX VALUES
sort_list = df.groupby('Player').sum().sort_values('PTS', ascending=False).index
# PIVOT --> REINDEX COLUMNS --> TRANSPOSE & PLOT
(df.pivot(index='Value', columns='Player', values='FG')
.reindex(sort_list, axis='columns') # USING ABOVE SORTED PLAYER LIST
.T
.plot(kind='bar', stacked=True)
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句