导入数据
df = pd.read_excel('team.xlsx')
df
df.sort_values(by='Q1') # 按Q1列数据升序排列
df.sort_values(by='Q1', ascending=False) # 降序
team Q1 Q2 Q3 Q4
name
Lincoln4 C 98 93 1 20
Max E 97 75 41 3
Elijah B 97 89 15 46
Aaron A 96 75 55 8
Eorge C 93 96 71 78
... ... ... ... ... ...
Lewis B 4 34 77 28
Finn E 4 1 55 32
Liam B 2 80 24 25
Harley B 2 99 12 13
Sebastian C 1 14 68 48
df.sort_values(['team', 'Q1'], ascending=[True, False]) # team升序,Q1降序
team Q1 Q2 Q3 Q4
name
Aaron A 96 75 55 8
Henry A 91 15 75 17
Nathan A 87 77 62 13
Dylan A 86 87 65 20
Blake A 78 23 93 9
... ... ... ... ... ...
Eli E 11 74 58 91
Jude E 8 45 13 65
Rory9 E 8 12 58 27
Jackson5 E 6 10 15 33
Finn E 4 1 55 32
数据分组聚合
pandas可以实现类似SQL的groupby的功能:
df.groupby('team').sum() # 按团队分组对应列相加
df.groupby('team').mean() # 按团队分组对应列求平均
Q1 Q2 Q3 Q4
team
A 62.705882 37.588235 51.470588 46.058824
B 44.318182 55.363636 54.636364 51.636364
C 48.000000 54.272727 48.545455 51.227273
D 45.263158 62.684211 65.315789 63.105263
E 48.150000 50.650000 44.050000 51.650000
使用agg聚合功能,对不同列可以使用不同的聚合函数
df.groupby('team').agg({'Q1': sum, # 总和
'Q2': 'count', # 总数
'Q3':'mean', # 平均
'Q4': max}) # 最大值
Q1 Q2 Q3 Q4
team
A 1066 17 51.470588 97
B 975 22 54.636364 99
C 1056 22 48.545455 98
D 860 19 65.315789 99
E 963 20 44.050000 98
数据转换
对数据表进行转置,对数据以A-Q1、E-Q4两点连成的折线为轴对数据进行翻转。可以发现team索引变成了列索引。
df.groupby('team').sum().T
team A B C D E
Q1 1066 975 1056 860 963
Q2 639 1218 1194 1191 1013
Q3 875 1202 1068 1241 881
Q4 783 1136 1127 1199 1033
阅读量:1761
点赞量:0
收藏量:0