pandas DataFrame运算的实现


Posted in Python onJune 14, 2020

1 算术运算

add(other)

比如进行数学运算加上具体的一个数字

data['open'].add(1)

2018-02-27 24.53
2018-02-26 23.80
2018-02-23 23.88
2018-02-22 23.25
2018-02-14 22.49

sub(other)

2 逻辑运算

2.1 逻辑运算符号

例如筛选data[“open”] > 23的日期数据

data[“open”] > 23返回逻辑结果

data["open"] > 23

2018-02-27  True
2018-02-26 False
2018-02-23 False
2018-02-22 False
2018-02-14 False

# 逻辑判断的结果可以作为筛选的依据
data[data["open"] > 23].head()

pandas DataFrame运算的实现

完成多个逻辑判断,

data[(data["open"] > 23) & (data["open"] < 24)].head()

pandas DataFrame运算的实现

2.2 逻辑运算函数

query(expr)

expr:查询字符串

通过query使得刚才的过程更加方便简单

# 以字符串形式
data.query("open<24 & open>23").head()

isin(values)
例如判断'open'是否为23.53和23.85

# 可以指定值进行一个判断,从而进行筛选操作
data[data["open"].isin([23.53, 23.85])]

pandas DataFrame运算的实现

3 统计运算

3.1 describe

综合分析: 能够直接得出很多统计结果,count, mean, std, min, max 等

# 计算平均值、标准差、最大值、最小值
data.describe()

pandas DataFrame运算的实现

3.2 统计函数

Numpy当中已经详细介绍,在这里我们演示min(最小值), max(最大值), mean(平均值), median(中位数), var(方差), std(标准差),mode(众数)结果:

pandas DataFrame运算的实现

对于单个函数去进行统计的时候,坐标轴还是按照默认列“columns” (axis=0, default),如果要对行“index” 需要指定(axis=1)

max()、min()

# 使用统计函数:0 代表列求结果, 1 代表行求统计结果
data.max(0)

open     34.99
high     36.35
close     35.21
low     34.01
volume    501915.41
price_change   3.03
p_change    10.03
turnover    12.56
my_price_change   3.41
dtype: float64

std()、var()

# 方差
data.var(0)

open    1.545255e+01
high    1.662665e+01
close    1.554572e+01
low    1.437902e+01
volume    5.458124e+09
price_change  8.072595e-01
p_change   1.664394e+01
turnover   4.323800e+00
my_price_change 6.409037e-01
dtype: float64

# 标准差
data.std(0)

open     3.930973
high     4.077578
close     3.942806
low     3.791968
volume    73879.119354
price_change   0.898476
p_change    4.079698
turnover    2.079375
my_price_change  0.800565
dtype: float64

median():中位数

中位数为将数据从小到大排列,在最中间的那个数为中位数。如果没有中间数,取中间两个数的平均值。

df = pd.DataFrame({'COL1' : [2,3,4,5,4,2],
     'COL2' : [0,1,2,3,4,2]})

df.median()

COL1 3.5
COL2 2.0
dtype: float64

idxmax()、idxmin()

# 求出最大值的位置
data.idxmax(axis=0)

open    2015-06-15
high    2015-06-10
close    2015-06-12
low    2015-06-12
volume    2017-10-26
price_change  2015-06-09
p_change   2015-08-28
turnover   2017-10-26
my_price_change 2015-07-10
dtype: object


# 求出最小值的位置
data.idxmin(axis=0)

open    2015-03-02
high    2015-03-02
close    2015-09-02
low    2015-03-02
volume    2016-07-06
price_change  2015-06-15
p_change   2015-09-01
turnover   2016-07-06
my_price_change 2015-06-15
dtype: object

3.3 累计统计函数

pandas DataFrame运算的实现

那么这些累计统计函数怎么用?

pandas DataFrame运算的实现

以上这些函数可以对series和dataframe操作

这里我们按照时间的从前往后来进行累计

排序

# 排序之后,进行累计求和
data = data.sort_index()

对p_change进行求和

stock_rise = data['p_change']
# plot方法集成了前面直方图、条形图、饼图、折线图
stock_rise.cumsum()

2015-03-02  2.62
2015-03-03  4.06
2015-03-04  5.63
2015-03-05  7.65
2015-03-06  16.16
2015-03-09  16.37
2015-03-10  18.75
2015-03-11  16.36
2015-03-12  15.03
2015-03-13  17.58
2015-03-16  20.34
2015-03-17  22.42
2015-03-18  23.28
2015-03-19  23.74
2015-03-20  23.48
2015-03-23  23.74

那么如何让这个连续求和的结果更好的显示呢?

pandas DataFrame运算的实现

如果要使用plot函数,需要导入matplotlib.

import matplotlib.pyplot as plt
# plot显示图形
stock_rise.cumsum().plot()
# 需要调用show,才能显示出结果
plt.show()

关于plot,稍后会介绍API的选择

4 自定义运算

apply(func, axis=0)

  • func:自定义函数
  • axis=0:默认是列,axis=1为行进行运算

定义一个对列,最大值-最小值的函数

data[['open', 'close']].apply(lambda x: x.max() - x.min(), axis=0)

open  22.74
close 22.85
dtype: float64

到此这篇关于pandas DataFrame运算的实现的文章就介绍到这了,更多相关pandas DataFrame运算内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python创建xml的方法
Mar 10 Python
Python中实现结构相似的函数调用方法
Mar 10 Python
Python数组遍历的简单实现方法小结
Apr 27 Python
python使用fork实现守护进程的方法
Nov 16 Python
python实现用户管理系统
Jan 10 Python
numpy实现合并多维矩阵、list的扩展方法
May 08 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
Nov 29 Python
Python爬取豆瓣视频信息代码实例
Nov 16 Python
pytorch实现seq2seq时对loss进行mask的方式
Feb 18 Python
Python改变对象的字符串显示的方法
Aug 01 Python
python的数学算法函数及公式用法
Nov 18 Python
Python 如何安装Selenium
May 06 Python
Numpy中ndim、shape、dtype、astype的用法详解
Jun 14 #Python
DataFrame 数据合并实现(merge,join,concat)
Jun 14 #Python
python中pandas库中DataFrame对行和列的操作使用方法示例
Jun 14 #Python
Django 构建模板form表单的两种方法
Jun 14 #Python
Python Django搭建网站流程图解
Jun 13 #Python
Python xpath表达式如何实现数据处理
Jun 13 #Python
Python轻量级web框架bottle使用方法解析
Jun 13 #Python
You might like
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
自动生成文章摘要的代码[PHP 版本]
2007/03/20 PHP
PHP实现异步调用方法研究与分享
2011/10/27 PHP
php 多关键字 高亮显示实现代码
2012/04/23 PHP
解析php中memcache的应用
2013/06/18 PHP
鼠标经过的文本框textbox变色
2009/05/21 Javascript
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
2013/04/26 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
JavaScript生成简单等差数列
2017/11/28 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
Python数据结构之哈夫曼树定义与使用方法示例
2018/04/22 Python
Python数据报表之Excel操作模块用法分析
2019/03/11 Python
python如何实现复制目录到指定目录
2020/02/13 Python
python数据预处理方式 :数据降维
2020/02/24 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
如何完美的建立一个python项目
2020/10/09 Python
英国舒适型鞋履品牌:FitFlop
2017/05/17 全球购物
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
巴西服装和鞋子购物网站:Marisa
2018/10/25 全球购物
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
通信工程专业女生个人求职信
2013/09/21 职场文书
报关报检委托书
2014/04/08 职场文书
村党建工作汇报材料
2014/11/02 职场文书
雷锋之歌观后感
2015/06/10 职场文书
《我和小伙伴》教学反思
2016/02/20 职场文书