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二叉树遍历的实现方法
Nov 21 Python
python3中bytes和string之间的互相转换
Feb 09 Python
Python 3中print函数的使用方法总结
Aug 08 Python
python基础练习之几个简单的游戏
Nov 10 Python
numpy数组拼接简单示例
Dec 15 Python
java中两个byte数组实现合并的示例
May 09 Python
pygame游戏之旅 添加碰撞效果的方法
Nov 20 Python
python多线程下信号处理程序示例
May 31 Python
numpy实现神经网络反向传播算法的步骤
Dec 24 Python
pycharm软件实现设置自动保存操作
Jun 08 Python
Python实现敏感词过滤的4种方法
Sep 12 Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 13 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
xml+php动态载入与分页
2006/10/09 PHP
php 前一天或后一天的日期
2008/06/28 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
CSS常用网站布局实例
2008/04/03 Javascript
跟着Jquery API学Jquery之一 选择器
2010/04/07 Javascript
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
ie支持function.bind()方法实现代码
2012/12/27 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
Node.js事件驱动
2015/06/18 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
2019/04/02 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
wxPython窗口中文乱码解决方法
2014/10/11 Python
python读取二进制mnist实例详解
2017/05/31 Python
python urllib爬取百度云连接的实例代码
2017/06/19 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
python 星号(*)的多种用途
2020/09/21 Python
python 获取字典特定值对应的键的实现
2020/09/29 Python
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
碧欧泉Biotherm加拿大官方网站:法国高端护肤品牌
2019/10/18 全球购物
求职信的要素有哪些呢
2013/12/26 职场文书
法人代表授权委托书
2014/04/08 职场文书
小学课外阅读总结
2014/07/09 职场文书
单位委托书怎么写
2014/08/02 职场文书
班子个人四风问题整改措施
2014/10/04 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书
MySQL的存储过程和相关函数
2022/04/26 MySQL