如何在python中添加趋势箭头?
我有一个熊猫的数据框架,其中包含一些球队和三年的得分。数据如下:如何在python中添加趋势箭头?,python,pandas,plot,trend,Python,Pandas,Plot,Trend,我有一个熊猫的数据框架,其中包含一些球队和三年的得分。数据如下: df = pd.DataFrame({'Team': ['A', 'B', 'C', 'D'], '2016' : [16, 13, 15, 19], '2017' : [15, 16, 14, 19], '2018' : [13, 17, 14, 17], '2019' : [15, 15, 16, 19]
df = pd.DataFrame({'Team': ['A', 'B', 'C', 'D'],
'2016' : [16, 13, 15, 19],
'2017' : [15, 16, 14, 19],
'2018' : [13, 17, 14, 17],
'2019' : [15, 15, 16, 19]
})
我想计算每个团队每年的排名,然后跟踪团队每年排名的变化。
我想用熊猫的上下箭头显示等级的变化
结果必须是这样的:
您可以使用轴=1上的,然后使用条件和
您可以在SO上查看以下线程。这也许能回答你的问题。
m = df.set_index('Team') #set Team as index
n = m.rank(ascending=False,method='min').add_suffix('_rank') #get rank
a = n.diff(axis=1).iloc[:,1:].add_suffix('_trned') #take difference on axis=1
a[:] = np.select([a.lt(0),a.gt(0),a.eq(0)],[u"\u2193",u"\u2191",u"\u2192"])
final = pd.concat((m,n,a),axis=1).reset_index()
Team 2016 2017 2018 2019 2016_rank 2017_rank 2018_rank 2019_rank \
0 A 16 15 13 15 2.0 3.0 4.0 3.0
1 B 13 16 17 15 4.0 2.0 1.0 3.0
2 C 15 14 14 16 3.0 4.0 3.0 2.0
3 D 19 19 17 19 1.0 1.0 1.0 1.0
2017_rank_trned 2018_rank_trned 2019_rank_trned
0 ↑ ↑ ↓
1 ↓ ↓ ↑
2 ↑ ↓ ↓
3 → → →