五、pandas系列---pandas库的数据类型运算
来源:互联网 发布:大学生网络成瘾的原因 编辑:程序博客网 时间:2024/05/19 10:34
pandas系列—pandas库的数据类型运算
[TOC]
如何改变Series和DataFrame对象:
1. 算术运算根据行列索引,补齐后运算,运算默认产生浮点数,补齐时缺项填充NaN
2. 二维和一维,一维和零维间为广播运算
3. 采用 + - * / 符号进行的二元运算会产生新的对象
一、数据类型的算术运算
1.1 简单的算术运算
例子1:
import pandas as pdimport numpy as npa = pd.DataFrame(np.arange(12).reshape(3,4))aOut[42]: 0 1 2 30 0 1 2 31 4 5 6 72 8 9 10 11b = pd.DataFrame(np.arange(20).reshape(4,5))bOut[44]: 0 1 2 3 40 0 1 2 3 41 5 6 7 8 92 10 11 12 13 143 15 16 17 18 19a+bOut[45]: 0 1 2 3 40 0.0 2.0 4.0 6.0 NaN1 9.0 11.0 13.0 15.0 NaN2 18.0 20.0 22.0 24.0 NaN3 NaN NaN NaN NaN NaNa*bOut[46]: 0 1 2 3 40 0.0 1.0 4.0 9.0 NaN1 20.0 30.0 42.0 56.0 NaN2 80.0 99.0 120.0 143.0 NaN3 NaN NaN NaN NaN NaN
1.2 方法形成的运算
例子2:
import pandas as pdimport numpy as npa = pd.DataFrame(np.arange(12).reshape(3,4))b = pd.DataFrame(np.arange(20).reshape(4,5))b.add(a,fill_value=100) #空的数据用100来填充Out[47]: 0 1 2 3 40 0.0 2.0 4.0 6.0 104.01 9.0 11.0 13.0 15.0 109.02 18.0 20.0 22.0 24.0 114.03 115.0 116.0 117.0 118.0 119.0a.mul(b,fill_value=0)Out[48]: 0 1 2 3 40 0.0 1.0 4.0 9.0 0.01 20.0 30.0 42.0 56.0 0.02 80.0 99.0 120.0 143.0 0.03 0.0 0.0 0.0 0.0 0.0
1.3 不同维度间的运算
import pandas as pdimport numpy as npb = pd.DataFrame(np.arange(20).reshape(4,5))bOut[50]: 0 1 2 3 40 0 1 2 3 41 5 6 7 8 92 10 11 12 13 143 15 16 17 18 19c = pd.Series(np.arange(4))cOut[52]: 0 01 12 23 3dtype: int32c-10Out[53]: 0 -101 -92 -83 -7dtype: int32b-cOut[54]: 0 1 2 3 40 0.0 0.0 0.0 0.0 NaN1 5.0 5.0 5.0 5.0 NaN2 10.0 10.0 10.0 10.0 NaN3 15.0 15.0 15.0 15.0 NaN
注1:不同维度间为广播运算,一维Series默认在轴1参与运算(b的每一行减去c的元素)
若要使轴0参与运算,需要指定axis
b.sub(c,axis=0)Out[55]: 0 1 2 3 40 0 1 2 3 41 4 5 6 7 82 8 9 10 11 123 12 13 14 15 16
二、比较运算
1. 比较运算只能比较相同索引的元素,不进行补齐
2. 二维和一维、一维和零维间为广播运算
3. 采用 > < >= <= != 等符号进行的二元运算产生布尔对象
a = pd.DataFrame(np.arange(12).reshape(3,4))aOut[57]: 0 1 2 30 0 1 2 31 4 5 6 72 8 9 10 11b = pd.DataFrame(np.arange(12,0,-1).reshape(3,4))bOut[59]: 0 1 2 30 12 11 10 91 8 7 6 52 4 3 2 1a>bOut[60]: 0 1 2 30 False False False False1 False False False True2 True True True True
注:同维度运算,尺寸一致
a = pd.DataFrame(np.arange(12).reshape(3,4))aOut[65]: 0 1 2 30 0 1 2 31 4 5 6 72 8 9 10 11c = pd.Series(np.arange(4))cOut[67]: 0 01 12 23 3dtype: int32a>c #不同维度,广播运算,默认在1轴Out[68]: 0 1 2 30 False False False False1 True True True True2 True True True Truec>0Out[69]: 0 False1 True2 True3 Truedtype: bool
参考资料:北京理工大学嵩天老师教学视频
阅读全文
0 0
- 五、pandas系列---pandas库的数据类型运算
- pandas库的数据类型运算
- 四、pandas系列---pandas库的数据类型操作
- Pandas的数据类型
- Pandas的数据类型操作
- 二、pandas系列---pandas库的Series类型
- 三、pandas系列---pandas库的DataFrame类型
- 一、pandas系列---pandas库简介
- pandas
- pandas
- Pandas
- pandas
- pandas
- pandas
- pandas
- Pandas
- pandas
- pandas
- MySql数据库查询时大小写敏感问题
- ubuntu安装注册gitlab_runner
- 解决GridView与scrollview嵌套时GridView显示一行数据
- [LintCode 138] 子数组之和(Python)
- 关于android urlHttpConnection中setDoOutput和setDoInput走过的坑
- 五、pandas系列---pandas库的数据类型运算
- Mysql 第一天
- Python3之多线程GIL、同步锁、信号量、死锁与递归锁、线程Queue、Event、定时器
- 2017.8.27 魔法王国
- webpack--概念7--模块解析
- 用Swift 进行AES 加密、解密
- Python中==和is的区别
- 递归问题
- HBase扫描操作Scan