对pandas的算术运算和数据对齐实例详解


Posted in Python onDecember 22, 2018

pandas可以对不同索引的对象进行算术运算,如果存在不同的索引对,结果的索引就是该索引对的并集。

一、算术运算

a、series的加法运算

s1 = Series([1,2,3],index=["a","b","c"])
  s2 = Series([4,5,6],index=["a","c","e"])
  print(s1+s2)
  '''
  a  5.0
  b  NaN
  c  8.0
  e  NaN
  '''

sereis相加会自动进行数据对齐操作,在不重叠的索引处会使用NA(NaN)值进行填充,series进行算术运算的时候,不需要保证series的大小一致。

b、DataFrame的加法运算

d1 = np.arange(1,10).reshape(3,3)
  dataFrame1 = DataFrame(d1,index=["a","b","c"],columns=["one","two","three"])
  d2 = np.arange(1,10).reshape(3,3)
  dataFrame2 = DataFrame(d2,index=["a","b","e"],columns=["one","two","four"])
  print(dataFrame1+dataFrame2)
  '''
    four one three  two
  a  NaN 2.0  NaN  4.0
  b  NaN 8.0  NaN 10.0
  c  NaN NaN  NaN  NaN
  e  NaN NaN  NaN  NaN
  '''

dataFrame相加时,对齐操作需要行和列的索引都重叠的时候才回相加,否则会使用NA值进行填充。

二、指定填充值

s1 = Series([1,2,3],index=["a","b","c"])
  s2 = Series([4,5,6],index=["a","c","e"])
  print( s1.add(s2,fill_value=0))
  '''
  a  5.0
  b  2.0
  c  8.0
  e  6.0
  '''

需要注意的时候,使用add方法对两个series进行相加的时候,设置fill_value的值是对于不存在索引的series用指定值进行填充后再进行相加。除了加法add,还有sub减法,div除法,mul乘法,使用方式与add相同。DataFrame与series一样。

s1 = Series([1,2,3],index=["a","b","c"])
  s2 = Series([4,5,6],index=["a","c","e"])
  print(s2.reindex(["a","b","c","d"],fill_value=0))
  '''
  a  4
  b  0
  c  5
  d  0
  '''
  s3 = s1 + s2
  print(s3.reindex(["a","b","c","e"],fill_value=0))
  '''
  a  5.0
  b  NaN
  c  8.0
  e  NaN
  '''

使用reindex进行填充的时候,需要注意的是,不能对已经是值为NaN的进行重新赋值,只能对使用reindex之前不存在的所以使用指定的填充值,DataFrame也是一样的。

三、DataFrame与Series的混合运算

a、DataFrame的行进行广播

a = np.arange(9).reshape(3,3)
  d = DataFrame(a,index=["a","b","c"],columns=["one","two","three"])
  #取d的第一行为Series
  s = d.ix[0]
  print(d+s)
  '''
    one two three
  a  0  2   4
  b  3  5   7
  c  6  8   10
  '''

b、DataFrame的列进行广播

a = np.arange(9).reshape(3,3)
  d = DataFrame(a,index=["a","b","c"],columns=["one","two","three"])
  #取d的第一列为Series
  s = d["one"]
  print(d.add(s,axis=0))
  '''
    one two three
  a  0  1   2
  b  6  7   8
  c  12  13   14
  '''

对列进行广播的时候,必须要使用add方法,而且还要将axis设置为0,不然就会得到下面的结果

print(d.add(s))
  '''
    a  b  c one three two
  a NaN NaN NaN NaN  NaN NaN
  b NaN NaN NaN NaN  NaN NaN
  c NaN NaN NaN NaN  NaN NaN
  '''

以上这篇对pandas的算术运算和数据对齐实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python递归计算N!的方法
May 05 Python
Python随手笔记之标准类型内建函数
Dec 02 Python
Python 实现一个颜色色值转换的小工具
Dec 06 Python
Mac 上切换Python多版本
Jun 17 Python
PyQt5 加载图片和文本文件的实例
Jun 14 Python
django之对FileField字段的upload_to的设定方法
Jul 28 Python
Flask框架学习笔记之消息提示与异常处理操作详解
Aug 15 Python
pandas read_excel()和to_excel()函数解析
Sep 19 Python
Python 3 使用Pillow生成漂亮的分形树图片
Dec 24 Python
python实现控制台输出彩色字体
Apr 05 Python
Python基于内置函数type创建新类型
Oct 22 Python
Pandas DataFrame求差集的示例代码
Dec 13 Python
Python使用pandas对数据进行差分运算的方法
Dec 22 #Python
利用arcgis的python读取要素的X,Y方法
Dec 22 #Python
对python 读取线的shp文件实例详解
Dec 22 #Python
Python装饰器基础概念与用法详解
Dec 22 #Python
python 文本单词提取和词频统计的实例
Dec 22 #Python
python 删除字符串中连续多个空格并保留一个的方法
Dec 22 #Python
Python函数装饰器实现方法详解
Dec 22 #Python
You might like
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
把PHP安装为Apache DSO
2006/10/09 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
PHP中的traits简单使用实例
2015/05/13 PHP
css图片自适应大小
2007/11/28 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
js实现简单的网页换肤效果
2017/01/18 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
2019/06/17 Javascript
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
在Python的Django框架中创建和使用模版
2015/07/15 Python
python添加模块搜索路径方法
2017/09/11 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
Django框架使用mysql视图操作示例
2019/05/15 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
Python PyQt5整理介绍
2020/04/01 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
Julep官网:美容产品和指甲油
2017/02/25 全球购物
adidas官方旗舰店:德国运动用品制造商
2017/11/25 全球购物
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
商务主管岗位职责
2013/12/08 职场文书
写演讲稿要注意的六件事
2014/01/14 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
售房协议书
2014/08/19 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
2015年学校党建工作总结
2015/05/19 职场文书
岁月神偷观后感
2015/06/11 职场文书
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL
Python的property属性详细讲解
2022/04/11 Python