数据转换transform练习
import numpy as np
import pandas as pd
1.创建3行4列dataframe对象,随机整数,范围1-6
df1 = pd.DataFrame(np.random.randint(1,6,(3,4)))
df1
2.按照series行分组,0,1行为a组,2行为b组,对其求出每一行的最小值
ser1 = pd.Series(list('aab'))
ser1
0 a
1 a
2 b
dtype: object
df1_1 = df1.groupby(ser1)
for i in df1_1:
print(i)
print('*******************')
('a', 0 1 2 3
0 1 3 2 4
1 5 2 2 4)
*******************
('b', 0 1 2 3
2 5 1 2 4)
*******************
df1_1.transform(min)
3.在1的基础上增加一列key,值为A,B,A,按照key进行分组,对其求出每一组的最大值,比较2,3聚合后与原dataframe对象的区别
df1['key'] = ['A','B','A']df1
| 0 | 1 | 2 | 3 | key |
---|
0 | 1 | 3 | 2 | 4 | A |
---|
1 | 5 | 2 | 2 | 4 | B |
---|
2 | 5 | 1 | 2 | 4 | A |
---|
df1_2 = df1.groupby('key')df1_2
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x000002A1D878F1C0>
for i in df1_2: print(i) print('*****************')
('A', 0 1 2 3 key0 1 3 2 4 A2 5 1 2 4 A)*****************('B', 0 1 2 3 key1 5 2 2 4 B)*****************
df1_2.transform(max)