内置函数的数据聚合
实验环境
Python 3.6.1
Jupyter
实验内容
数据聚合函数的应用
代码部分
import numpy as np
import pandas as pd
1.创建六行五列的随机整数DataFrame对象,列索引为:A-E,行索引为:1,2,3,4,50,51整数范围1-8
df1 = pd.DataFrame(np.random.randint(1,8,(6,5)),columns=list('ABCDE'),index=['1','2','3','4','50','51'])
df1
A | B | C | D | E | |
---|---|---|---|---|---|
1 | 5 | 3 | 3 | 6 | 1 |
2 | 4 | 2 | 2 | 5 | 5 |
3 | 4 | 1 | 3 | 3 | 6 |
4 | 6 | 6 | 6 | 4 | 3 |
50 | 5 | 5 | 7 | 4 | 2 |
51 | 5 | 7 | 1 | 5 | 5 |
2.按照A列分组,求出每一组的最小值
A = df1.groupby('A')
A
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x000001EAD736E5E0>
for i in A:
print(i)
print('**************')
(4, A B C D E
2 4 2 2 5 5
3 4 1 3 3 6)
**************
(5, A B C D E
1 5 3 3 6 1
50 5 5 7 4 2
51 5 7 1 5 5)
**************
(6, A B C D E
4 6 6 6 4 3)
**************
A.min(1)
B | C | D | E | |
---|---|---|---|---|
A | ||||
4 | 1 | 2 | 3 | 5 |
5 | 3 | 1 | 4 | 1 |
6 | 6 | 6 | 4 | 3 |
3.按照行索引的长度分组,求出每一组的最大值
a = df1.groupby(len)a
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x000001EADA6624C0>
for i in a: print(i) print('********')
(1, A B C D E1 5 3 3 6 12 4 2 2 5 53 4 1 3 3 64 6 6 6 4 3)********(2, A B C D E50 5 5 7 4 251 5 7 1 5 5)********
a.max()
A | B | C | D | E | |
---|---|---|---|---|---|
1 | 6 | 6 | 6 | 6 | 6 |
2 | 5 | 7 | 7 | 5 | 5 |
4.按照列表[‘No1’,‘No2’,‘No2’,‘No1’,‘No1’]进行列分组,求出每一组的和
list1 = ['No1','No2','No2','No1','No1']list1
['No1', 'No2', 'No2', 'No1', 'No1']
b = df1.groupby(list1,axis=1)b
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x000001EADA662DF0>
for i in b: print(i) print('**********************')
('No1', A D E1 5 6 12 4 5 53 4 3 64 6 4 350 5 4 251 5 5 5)**********************('No2', B C1 3 32 2 23 1 34 6 650 5 751 7 1)**********************