通过索引级别分组
水费.xlsx
1季度 | 2季度 | |||
1月 | 2月 | 3月 | 4月 | 5月 |
30 | 23 | 31 | 36 | 28 |
38 | 24 | 34 | 21 | 24 |
25 | 39 | 45 | 50 | 22 |
31 | 30 | 30 | 38 | 28 |
46 | 42 | 28 | 42 | 45 |
50 | 20 | 42 | 25 | 50 |
班级信息.xlsx
姓名 | 班级 | 学号 | 总分 |
aa | 1班 | a | 333 |
ab | 1班 | b | 455 |
ac | 1班 | c | 432 |
aa | 2班 | a | 420 |
ab | 2班 | b | 385 |
ac | 3班 | c | 325 |
aa | 3班 | a | 330 |
import pandas as pd
path="D:/班级信息.xlsx"
data=pd.read_excel(path,index_col=[0,1,2])
print(data)
print('-'*70)
data_g=data.groupby(level='班级').mean()
print(data_g)
print('-'*70)
data_avg=data.groupby(level='班级').max()
print(data_avg)
print('-'*70)
path1="D:/水费.xlsx"
data_water= pd.read_excel(path1,header=[0,1])
index1 = ['1季度','1季度','1季度','2季度','2季度']
index2 = ['1月','2月','3月','4月','5月']
mul = pd.MultiIndex.from_arrays([index1,index2],names=['季度','月份'])
data_water2 = pd.DataFrame(data_water,columns=mul)
print(data_water2)
print('-'*80)
data_water3=data_water2.groupby(level='季度',axis=1).max()
print(data_water3)
print('-'*80)
data_water4=data_water2.groupby(level='月份',axis=1).sum()
print(data_water4)
运行结果:
D:\Python\p\Scripts\python.exe "D:\Python\python-learning\数据分析(二)\分组聚合二.py"
总分
姓名 班级 学号
aa 1班 a 333
ab 1班 b 455
ac 1班 c 432
aa 2班 a 420
ab 2班 b 385
ac 3班 c 325
aa 3班 a 330
----------------------------------------------------------------------
总分
班级
1班 406.666667
2班 402.500000
3班 327.500000
----------------------------------------------------------------------
总分
班级
1班 455
2班 420
3班 330
----------------------------------------------------------------------
季度 1季度 2季度
月份 1月 2月 3月 4月 5月
0 32 24 40 33 41
1 20 30 23 21 32
2 45 37 39 40 45
3 29 42 26 44 35
4 38 21 24 41 34
5 40 46 31 27 49
--------------------------------------------------------------------------------
季度 1季度 2季度
0 40 41
1 30 32
2 45 45
3 42 44
4 38 41
5 46 49
--------------------------------------------------------------------------------
月份 1月 2月 3月 4月 5月
0 32 24 40 33 41
1 20 30 23 21 32
2 45 37 39 40 45
3 29 42 26 44 35
4 38 21 24 41 34
5 40 46 31 27 49
D:\Python\python-learning\数据分析(二)\分组聚合二.py:20: FutureWarning: DataFrame.groupby with axis=1 is deprecated. Do `frame.T.groupby(...)` without axis instead.
data_water3=data_water2.groupby(level='季度',axis=1).max()
D:\Python\python-learning\数据分析(二)\分组聚合二.py:23: FutureWarning: DataFrame.groupby with axis=1 is deprecated. Do `frame.T.groupby(...)` without axis instead.
data_water4=data_water2.groupby(level='月份',axis=1).sum()
进程已结束,退出代码为 0