python:DataFrame对单列或多列进行整列的运算(map, apply, transform, agg)
参考:https://blog.csdn.net/zwhooo/article/details/79696558 Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
1.单列运算
在Pandas中,DataFrame的一列就是一个Series, 可以通过map来对一列进行操作:
df['col2'] = df['col1'].map(lambda x: x**2)
其中lambda函数中的x代表当前元素。可以使用另外的函数来代替lambda函数,例如:
define square(x):return (x ** 2)df['col2'] = df['col1'].map(square)
注:举个例子,运用apply,对某一个整列的数据train['time'],进行加1操作:(此处使用apply,很好用!!!!!)
max_min_scaler = lambda x : x+1
train['time']= train['time'].apply(max_min_scaler) #运用apply,对整列数据train['time']进行加1操作
2.多列运算
要对DataFrame的多个列同时进行运算,可以使用apply,例如col3 = col1 + 2 * col2:
df['col3'] = df.apply(lambda x: x['col1'] + 2 * x['col2'], axis=1)
其中x带表当前行,可以通过下标进行索引。
3.分组运算
可以结合groupby与transform来方便地实现类似SQL中的聚合运算的操作:
df['col3'] = df.groupby('col1')['col2'].transform(lambda x: (x.sum() - x) / x.count())
在transform函数中x.sum()与x.count()与SQL类似,计算的是当前group中的和与数量,还可以将transform的结果作为一个一个映射来使用, 例如:
sumcount = df.groupby('col1')['col2'].transform(lambda x: x.sum() + x.count())df['col1'].map(sumcount)
对col1进行一个map,得到对应的col2的运算值。
4.聚合函数
结合groupby与agg实现SQL中的分组聚合运算操作,需要使用相应的聚合函数:
df['col2'] = df.groupby('col1').agg({'col1':{'col1_mean': mean, 'col1_sum‘’: sum}, 'col2': {'col2_count': count}})
上述代码生成了col1_mean, col1_sum与col2_count列。
python:DataFrame对单列或多列进行整列的运算(map, apply, transform, agg)相关推荐
- java dataframe agg_Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
1.单列运算 在Pandas中,DataFrame的一列就是一个Series, 可以通过map来对一列进行操作: df['col2'] = df['col1'].map(lambda x: x**2) ...
- python中 zip()的使用和pandas中的列运算(map apply等)
map()函数语法: map(function,iterable-) -> function – 函数 iterable – 一个或多个序列 案例 s1 = [1,2,3,4,5] s2 = [ ...
- python如何给某列数据打标签_Python map, apply, transform 打标签方法汇总(初阶到高阶)...
前言 根据数据的某列进行打标签这个操作在数据分析领域极度常用,对于一些较为复杂的打标签方法,Python 与 SQL 都能很好的实现,这篇针对 Python,主要用到 map,apply 与 tran ...
- 如何快速移动Excel列 移动整列快捷键Excel
首选选中当前列, 然后按住Shift键,鼠标放在列的边缘上,鼠标图标会变为十字箭头,此时就是左右拖动当前列了 同时按住ctrl + shift则拖动列到指定位置 转载于:https://www.cnb ...
- python agg函数_dataframe转化(二)之 apply(),transform(),agg() 的用法和区别
用法介绍 transform用法 pandas.Series.transform Call func on self producing a Series with transformed value ...
- Excel·VBA工作表整列拆分为工作簿
不同于<Excel·VBA按列拆分工作表.工作簿>按某列的值对工作表拆分,仅按固定列数拆分工作表单独保存为工作簿,类似于<Excel·VBA按行拆分工作表> Sub 工作表整列 ...
- python和R对dataframe的单列数据进行统计:value_counts、table、unique、nunique、min、max、mean、sort、length、var、quantile、
python和R对dataframe的单列数据进行统计:value_counts.table.unique.nunique.min.max.mean.sort.length.var.quantile. ...
- pandas把dataframe的数据列转化为索引列实战:单列转化为索引、多列转化为复合索引
pandas把dataframe的数据列转化为索引列实战:单列转化为索引.多列转化为复合索引 目录
- python和R对dataframe创建新的列或者改变列:dplyr、rename、map、mapvalues、astype、as.character、as.integer、as.numeric
python和R对dataframe创建新的列或者改变列:dplyr.rename.map.mapvalues.astype.as.character.as.integer.as.numeric # ...
- python Dataframe 根据某一列的值来删除多行
python Dataframe 根据某一列的值来删除多行 在Dataframe中,有的时候想根据某一列值来删除. 方法一:你可以做负isin()索引: In [57]: df Out[57]:a b ...
最新文章
- 怎么安装linux系统 硬盘,如何实现硬盘安装linux系统
- 交叉编译Open***-2.4.3
- 【BLE】TLSR8258开发记录之9--IIC驱动TMP102
- 【Paper】2021_Analysis of the Consensus Protocol of Heterogeneous Agents with Time-Delays
- python--DenyHttp项目(1)--socket编程:客户端与服务器端
- Django 现可在 Windows Azure 上使用
- ApiDemos示例学习(1)——ApiDemos示例的导入
- wso2 mysql,WSO2 DAS +具有MySQL的集群APIM
- Pajek常用方法保姆级操作指南——社会网络分析
- MySQL生日转年龄
- django模型多对一 多对多 一对一三种关系解读
- 配色(转http://huaban.com/boards/13532082/)
- 自定义dns服务器是什么,自动分配DNS服务器和手动设置有什么区别?
- 【matlab】拟合直线的方法
- 数据库管理系统MySQL(一)
- Linkage Mapper 专栏内容介绍
- 第一章 初识EmguCV
- docker部署博客项目
- 与你相关|《个人信息保护法》发布后我们能做什么?
- 金三银四产品人跳槽指南——找准定位,突破职业瓶颈
热门文章
- 第11章 支撑向量机 SVM 学习笔记 上
- office向快速访问工具栏加快速操作
- Atitit topic index Abt 150 toic [原]Atitit hi dev eff topic by use dsl sql coll op 提升开发效率sql ds
- Atitit s2018 s3 doc list alldvc.docx .docx s2018 s3f doc compc s2018 s3f doc homepc sum doc dvcCom
- Atitti opencv2.4 实现的人脸检测 attilax总结
- atitit.为什么 java开发要比php开发速度慢??
- atitit.团队建设总结fx O622
- Atitit.软件开发提升稳定性总结
- paip.重装系统需要备份的资料总结..v2.0 cad
- 如何构建一个可用的企业级API网关?