Python学习笔记:pandas之transform
2021/11/21 22:09:52
本文主要是介绍Python学习笔记:pandas之transform,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、介绍
利用 transform
可以高效地汇总数据,直白的说:增加一列汇总列。
一般情况下,transform
与 groupby
组合使用。
使用语法:
Series.transform(func, axis=0, **kwargs)
二、实操
- 基础用法
import pandas as pd import numpy as np df = pd.DataFrame({'A':range(3), 'B':range(1,4)}) df ''' A B 0 0 1 1 1 2 2 2 3 ''' # 整体 +1 df.transform(lambda x: x+1) s = pd.Series(range(3)) s.transform([np.sqrt, np.exp]) ''' sqrt exp 0 0.000000 1.000000 1 1.000000 2.718282 2 1.414214 7.389056 '''
- 分组变换
input
→ split
→ apply(sum)
→ combine
df = pd.DataFrame({ "Date": [ "2015-05-08", "2015-05-07", "2015-05-06", "2015-05-05", "2015-05-08", "2015-05-07", "2015-05-06", "2015-05-05"], "Data": [5, 8, 6, 1, 50, 100, 60, 120], }) df['sum'] = df.groupby('Date')['Data'].transform(sum) df['size'] = df.groupby('Date')['Data'].transform(len) df ''' Date Data sum size 0 2015-05-08 5 55 2 1 2015-05-07 8 108 2 2 2015-05-06 6 66 2 3 2015-05-05 1 121 2 4 2015-05-08 50 55 2 5 2015-05-07 100 108 2 6 2015-05-06 60 66 2 7 2015-05-05 120 121 2 '''
不使用 transform
方法进行变换。
temp = df.groupby('Date')['Data'].sum().rename('Total').reset_index() df_2 = pd.merge(df, temp, how='left') df_2['percent'] = df_2['Data']/df_2['Total'] ''' Date Data sum size Total percent 0 2015-05-08 5 55 2 55 0.090909 1 2015-05-07 8 108 2 108 0.074074 2 2015-05-06 6 66 2 66 0.090909 3 2015-05-05 1 121 2 121 0.008264 4 2015-05-08 50 55 2 55 0.909091 5 2015-05-07 100 108 2 108 0.925926 6 2015-05-06 60 66 2 66 0.909091 7 2015-05-05 120 121 2 121 0.991736 '''
三、apply 和 transform 结合对比
在与 apply()
一起使用时,transform
需要进行去重操作,一般是通过指定一或多个列完成。
此外,匿名函数永远不是一个很好的办法,在进行简单计算时,无论是使用 transfrom
、agg
还是 apply
,都要尽可能使用自带方法!!!
apply
方法可以结合 joblib
多线程、多进程模块构造相应的函数执行计算,加快计算速度。
参考链接:pandas.Series.transform
参考链接:新手向——理解Pandas的Transform
参考链接:pandas:apply和transform方法的性能比较
这篇关于Python学习笔记:pandas之transform的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门