参考: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)相关推荐

  1. java dataframe agg_Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)

    1.单列运算 在Pandas中,DataFrame的一列就是一个Series, 可以通过map来对一列进行操作: df['col2'] = df['col1'].map(lambda x: x**2) ...

  2. python中 zip()的使用和pandas中的列运算(map apply等)

    map()函数语法: map(function,iterable-) -> function – 函数 iterable – 一个或多个序列 案例 s1 = [1,2,3,4,5] s2 = [ ...

  3. python如何给某列数据打标签_Python map, apply, transform 打标签方法汇总(初阶到高阶)...

    前言 根据数据的某列进行打标签这个操作在数据分析领域极度常用,对于一些较为复杂的打标签方法,Python 与 SQL 都能很好的实现,这篇针对 Python,主要用到 map,apply 与 tran ...

  4. 如何快速移动Excel列 移动整列快捷键Excel

    首选选中当前列, 然后按住Shift键,鼠标放在列的边缘上,鼠标图标会变为十字箭头,此时就是左右拖动当前列了 同时按住ctrl + shift则拖动列到指定位置 转载于:https://www.cnb ...

  5. python agg函数_dataframe转化(二)之 apply(),transform(),agg() 的用法和区别

    用法介绍 transform用法 pandas.Series.transform Call func on self producing a Series with transformed value ...

  6. Excel·VBA工作表整列拆分为工作簿

    不同于<Excel·VBA按列拆分工作表.工作簿>按某列的值对工作表拆分,仅按固定列数拆分工作表单独保存为工作簿,类似于<Excel·VBA按行拆分工作表> Sub 工作表整列 ...

  7. 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. ...

  8. pandas把dataframe的数据列转化为索引列实战:单列转化为索引、多列转化为复合索引

    pandas把dataframe的数据列转化为索引列实战:单列转化为索引.多列转化为复合索引 目录

  9. 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 # ...

  10. python Dataframe 根据某一列的值来删除多行

    python Dataframe 根据某一列的值来删除多行 在Dataframe中,有的时候想根据某一列值来删除. 方法一:你可以做负isin()索引: In [57]: df Out[57]:a b ...

最新文章

  1. 怎么安装linux系统 硬盘,如何实现硬盘安装linux系统
  2. 交叉编译Open***-2.4.3
  3. 【BLE】TLSR8258开发记录之9--IIC驱动TMP102
  4. 【Paper】2021_Analysis of the Consensus Protocol of Heterogeneous Agents with Time-Delays
  5. python--DenyHttp项目(1)--socket编程:客户端与服务器端
  6. Django 现可在 Windows Azure 上使用
  7. ApiDemos示例学习(1)——ApiDemos示例的导入
  8. wso2 mysql,WSO2 DAS +具有MySQL的集群APIM
  9. Pajek常用方法保姆级操作指南——社会网络分析
  10. MySQL生日转年龄
  11. django模型多对一 多对多 一对一三种关系解读
  12. 配色(转http://huaban.com/boards/13532082/)
  13. 自定义dns服务器是什么,自动分配DNS服务器和手动设置有什么区别?
  14. 【matlab】拟合直线的方法
  15. 数据库管理系统MySQL(一)
  16. Linkage Mapper 专栏内容介绍
  17. 第一章 初识EmguCV
  18. docker部署博客项目
  19. 与你相关|《个人信息保护法》发布后我们能做什么?
  20. 金三银四产品人跳槽指南——找准定位,突破职业瓶颈

热门文章

  1. 第11章 支撑向量机 SVM 学习笔记 上
  2. office向快速访问工具栏加快速操作
  3. Atitit topic index Abt 150 toic [原]Atitit hi dev eff topic by use dsl sql coll op 提升开发效率sql ds
  4. Atitit s2018 s3 doc list alldvc.docx .docx s2018 s3f doc compc s2018 s3f doc homepc sum doc dvcCom
  5. Atitti opencv2.4 实现的人脸检测 attilax总结
  6. atitit.为什么 java开发要比php开发速度慢??
  7. atitit.团队建设总结fx O622
  8. Atitit.软件开发提升稳定性总结
  9. paip.重装系统需要备份的资料总结..v2.0 cad
  10. 如何构建一个可用的企业级API网关?