Padas中DataFrame运算
Padas中DataFrame运算
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"] > 232018-02-27 True 2018-02-26 False 2018-02-23 False 2018-02-22 False 2018-02-14 False
# 逻辑判断的结果可以作为筛选的依据
data[data["open"] > 23].head()
- 完成多个逻辑判断,
data[(data["open"] > 23) & (data["open"] < 24)].head()
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])]
3 统计运算
3.1 describe
综合分析: 能够直接得出很多统计结果,count
, mean
, std
, min
, max
等
# 计算平均值、标准差、最大值、最小值
data.describe()
3.2 统计函数
Numpy当中已经详细介绍,在这里我们演示min(最小值), max(最大值), mean(平均值), median(中位数), var(方差), std(标准差),mode(众数)结果:
count
|
Number of non-NA observations |
---|---|
sum
|
Sum of values |
mean
|
Mean of values |
median
|
Arithmetic median of values |
min
|
Minimum |
max
|
Maximum |
mode
|
Mode 【出现次数最多的那个数】 |
abs
|
Absolute Value |
prod
|
Product of values |
std
|
Bessel-corrected sample standard deviation |
var
|
Unbiased variance |
idxmax
|
compute the index labels with the maximum |
idxmin 【最小值的索引值,不是索引】
|
compute the index labels with the minimum |
对于单个函数去进行统计的时候,坐标轴还是按照默认列“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 累计统计函数
函数 | 作用 |
---|---|
cumsum
|
计算前1/2/3/…/n个数的和 |
cummax
|
计算前1/2/3/…/n个数的最大值 |
cummin
|
计算前1/2/3/…/n个数的最小值 |
cumprod
|
计算前1/2/3/…/n个数的积 |
那么这些累计统计函数怎么用?
以上这些函数可以对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
那么如何让这个连续求和的结果更好的显示呢?
如果要使用plot函数,需要导入matplotlib.
import matplotlib.pyplot as plt
# plot显示图形
stock_rise.cumsum().plot()
# 需要调用show,才能显示出结果
plt.show()
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
5 小结
- 算术运算
- 逻辑运算
- 1.逻辑运算符号
- 2.逻辑运算函数
- 对象.query()
- 对象.isin()
- 统计运算
- 1.对象.describe()
- 2.统计函数
- 3.累积统计函数
- 自定义运算
- apply(func, axis=0)
Padas中DataFrame运算相关推荐
- Pandas中DataFrame基本函数整理(全)
[python]Pandas中DataFrame基本函数整理(全) 构造函数 DataFrame([data, index, columns, dtype, copy]) #构造数据框 属性和数据 D ...
- python使用pandas模块介绍以及使用,dataframe结构,Series结构,基本数据操作,DataFrame运算,pandas画图,存储,缺失值处理,离散化,合并
目录 1 pandas介绍 1.1 Pandas介绍 1.2 为什么使用Pandas 1.3 案例:在numpy当中创建的股票涨跌幅数据形式 1.4 DataFrame 1.4.1 DataFrame ...
- 机器学习之Pandas:Pandas介绍、基本数据操作、DataFrame运算、Pandas画图、文件读取与处、缺失值处理、数据离散化、合并、交叉表和透视表、分组与聚合、案例(超长篇,建议收藏慢慢看)
文章目录 Pandas 学习目标 1Pandas介绍 学习目标 1 Pandas介绍 2 为什么使用Pandas 3 案例: 问题:如何让数据更有意义的显示?处理刚才的股票数据 给股票涨跌幅数据增加行 ...
- pandas中DataFrame的ix,loc,iloc索引方式的异同
pandas中DataFrame的ix,loc,iloc索引方式的异同 1.loc: 按照标签索引,范围包括start和end 2.iloc: 在位置上进行索引,不包括end 3.ix: 先在inde ...
- Python—pandas中DataFrame类型数据操作函数
python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数. 1)查看DataFram ...
- pandas中dataframe默认不显示所有的数据行(中间省略)、使用option_context函数自定义设置单个dataframe允许显示的行的个数、set_option函数全局设置显示行的个数
pandas中dataframe默认不显示所有的数据行(中间省略).使用option_context函数自定义设置单个dataframe允许显示的行的个数.set_option函数全局设置显示行的个数 ...
- Python将Pandas中Dataframe数据保存为gzip/zip文件:gzip压缩文件、zip压缩文件
Python将Pandas中Dataframe数据保存为gzip/zip文件:gzip压缩文件.zip压缩文件 目录 Python将Pandas中Dataframe数据保存为gzip/zip文件:gz ...
- pandas中dataframe索引排序实战:pandas中dataframe索引降序排序、pandas中dataframe索引升序排序
pandas中dataframe索引排序实战:pandas中dataframe索引降序排序.pandas中dataframe索引升序排序 目录
- Java执行字符串中的运算公式
在实现执行字符串中的运算公式时,采用了如下所示的代码: public static String StringfinalResult (String original) { try { String ...
最新文章
- Python 笔试面试及常用技巧 (1)
- 深度学习上的又一重点发现——利用MSCNN实现人群密度监测
- 让瘫痪失语患者「说话」,脑机接口首次从大脑活动解码完整句子,登上新英格兰医学杂志...
- 关于MVVM与MVC
- Mysql中Check约束无效的原因以及解决方法
- 来自微信团队的6个开源项目
- 编程中常见的安全算法
- 64位锐捷多网卡、VMWareNat模式、ICS共享破解
- excel常用函数公式及技巧搜集4
- MaxKey单点登录认证系统微服务架构v3.0.0GA发布
- java获取date的时分秒_java Date简单的 获得时分秒代码
- Synopsys Formality 2018操作流程
- Vue 实现拖拽模块(二)自定义拖拽组件位置
- 2022年「博客之星」 无知的人_的程序人生
- [翻译]如何用YII写出安全的WEB应用
- 小型电子商务网站数据管理系统
- vue实现标签云效果
- linux服务器上的项目读取本地文件,java访问linux服务器读取文件路径
- java毕业设计 ssm公寓宿舍后勤管理系统(含源码+论文)
- SiamFC响应图热力图绘制
热门文章
- Git 看这一篇就够了
- 从4个月到7天,Netflix开源Python框架Metaflow有何提升性能的魔法?
- 今日头条李磊等最新论文:用于文本生成的核化贝叶斯Softmax
- 不止最佳长论文,腾讯AI在ACL上还有这些NLP成果
- 新一届最强预训练模型上榜,出于BERT而胜于BERT
- 如何通过引入硬注意力机制来学习视觉问答任务?
- AI一分钟 | 知乎融资2.7亿美元;腾讯投资特斯拉大赚特赚
- AI一分钟|腾讯与三星结盟,以对抗苹果和谷歌;亚马逊回应“AI误将国会议员标记为罪犯”...
- Docker + FastDFS + Spring Boot 一键式搭建分布式文件服务器
- 机器学习4个常用超参数调试方法!