Python自定义聚合函数merge与transform区别详解
1.自定义聚合函数,结合agg使用
2.同时使用多个聚合函数
3.指定某一列使用某些聚合函数
4.merge与transform使用
importpandasaspd
importnumpyasnp
np.random.seed(1)
dict_data={
'k1':['a','b','c','d','a','b','c','d'],
'k2':['A','B','C','D','A','B','C','D'],
'data1':np.random.randint(1,10,8),
'data2':np.random.randint(1,10,8)
}
df=pd.DataFrame(dict_data)
print('df=\n',df)
df2=df.groupby('k1').sum()
#df2=df.sum()
print("df.groupby('k1').sum()\n",df2)
#使用聚合函数
defcus(df):
returndf.max()-df.min()
#默认列索引为列名。元组第0个元素‘Max',‘mu_cus'为自定义列名称,第一个元素为聚合函数名称
print("使用聚合函数1\n",df.groupby('k1').agg(['sum',('Max','max'),('mu_cus',cus)]))
#制定某一列使用某个聚合函数,元组不能用来重命名列名了,元组里面的函数,表示这一列将会执行的聚合函数
print("使用聚合函数2\n",df.groupby('k1').agg({'data1':('min','max'),'data2':'min'}))
df3=df.groupby('k1').sum().add_prefix('sum_')
print('df3=\n',df3)
#如果不使用add_prefix('sum_'),那么在merge时候data1余data2列名相同,会被自动重命名
print('merge=\n',pd.merge(df,df3,on='k1'))
transform_df=df.groupby('k1').transform(np.sum).add_prefix('sum_')
print(transform_df)
df[transform_df.columns]=transform_df#transform_df.columnsIndex(['sum_k2','sum_data1','sum_data2'],dtype='object')
#df[transform_df.columns.values]=transform_df#等价,#transform_df.columns.values['sum_k2','sum_data1','sum_data2']
print(df)exit()
结果
df=
k1k2data1data2
0aA63
1bB95
2cC66
3dD13
4aA15
5bB23
6cC85
7dD78
df.groupby('k1').sum()
data1data2
k1
a78
b118
c1411
d811
使用聚合函数1
data1data2
sumMaxmu_cussumMaxmu_cus
k1
a765852
b1197852
c14821161
d8761185
使用聚合函数2
data1data2
minmaxmin
k1
a163
b293
c685
d173
df3=
sum_data1sum_data2
k1
a78
b118
c1411
d811
merge=
k1k2data1data2sum_data1sum_data2
0aA6378
1aA1578
2bB95118
3bB23118
4cC661411
5cC851411
6dD13811
7dD78811
sum_k2sum_data1sum_data2
0AA78
1BB118
2CC1411
3DD811
4AA78
5BB118
6CC1411
7DD811
k1k2data1data2sum_k2sum_data1sum_data2
0aA63AA78
1bB95BB118
2cC66CC1411
3dD13DD811
4aA15AA78
5bB23BB118
6cC85CC1411
7dD78DD811
Processfinishedwithexitcode0
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短