Python数据分组计算利器:Transform函数
创始人
2024-06-02 19:52:05
0

使用Python进行数据清洗时,需要对数据进行分组计算,一般使用’goupby+计算函数’,但是返回的结果并不是原来表格的格式。或者是使用遍历的方式,将每组计算的结果返回到原表格中。

Transform是Pandas中的一个函数,它用于在dataframe中对数据进行转换或操作,并且按照原来的Dataframe格式输出结果。transform函数通常用于按照分组的方式对数据进行操作,例如对每个组进行标准化、填充缺失值等。

PS: 虽然标准化、缺失值填充现在都有sklearn都有对应的函数,但是直接调用Transform还是目前了解到的最方便的分组处理方法。

语法参数介绍

df.transform(func, axis=0, *args, **kwargs)

其中,

  • 参数func是一个函数,它定义了对数据进行的操作,可以是一个内置函数或用户自定义函数;
  • 参数axis指定了操作的方向,可以是0表示对列进行操作,1表示对行进行操作,默认值为0。
  • 另外,还可以使用可选参数*args和****kwargs**传递给func函数。

常用的内置函数介绍:

函数名称解释
sum()对数据进行求和操作。
mean()对数据进行求平均值操作。
median()对数据进行求中位数操作。
min()对数据进行求最小值操作。
max()对数据进行求最大值操作。
count()对数据进行计数操作。
cumsum()对数据进行累计求和操作。
cumprod()对数据进行累计乘积操作。
cummax()对数据进行累计最大值操作。
cummin()对数据进行累计最小值操作。
rank()对数据进行排名操作。
diff()对数据进行差分操作。
pct_change()对数据进行百分比变化操作。

使用代码案例

import pandas as pd
import numpy as np# 创建一个数据框
df = pd.DataFrame({'group': ['A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C'],'data': [1, 2, 3, 4, 5, 6, 7, np.nan, 9]})# 对数据框按照分组进行标准化
df['data_standardized'] = df.groupby('group')['data'].transform(lambda x: (x - np.mean(x)) / np.std(x))# 对数据框按照分组,取该组最后一个值
df['data_last'] = df.groupby('group')['data'].transform('last')# 对数据框按照分组,对空值进行平均值填充
df['data_filled'] = df.groupby('group')['data'].transform(lambda x: x.fillna(x.mean()))# 打印输出结果
print(df)

在这里插入图片描述

Labmda Vs 内置函数 该使用哪个更好?

#labmda 
df['lam_sum_by_group'] = df.groupby('group')['data'].transform(lambda x: x.sum())
#直接调用内置函数
df['sum_by_group'] = df.groupby('group')['data'].transform('sum')
#结果查看
df

在这里插入图片描述
最后结果是一致的。 两种方法的作用是相同的,都是对"df"按照"group"进行分组,然后在每个组内计算"data"列的和。

两者的区别在于函数的传递方式。

使用lambda函数可以更加灵活的操作,包括使用任意的Python表达式和语句和自定义函数。而调用内置函数只能使用原本系统定义好的函数。但是,在性能上,使用内置函数要比使用lambda函数更加高效。具体使用哪种方式需要根据实际情况进行选择。

参考资料;
这个总结的也很全面:【Python】Pandas中的宝藏函数-transform()

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...