Python Pandas学习之基本数据操作详解
作者:Dragon少年 发布时间:2021-11-07 17:46:56
为了更好的理解这些基本操作,下面会通过读取一个股票数据,来进行Pandas基本数据操作的语法介绍。
# 读取文件(读取保存文件后面会专门进行讲解,这里先直接调用下api)
data = pd.read_csv("./data/stock_day.csv") # 读取当前目录下一个csv文件
# 删除一些列,让数据更简单些,再去做后面的操作
data = data.drop(["ma5","ma10","ma20","v_ma5","v_ma10","v_ma20"], axis=1)
1 索引操作
Numpy当中我们已经讲过使用索引选取序列和切片选择,pandas也支持类似的操作,也可以直接使用列名、行名称,甚至组合使用。
1.1 直接使用行列索引(先列后行)
举例:获取2018-02-27 这天闭盘价,即获取’2018-02-27’这天的’close’的结果。
# 直接使用行列索引名字的方式(先列后行)
data['close']['2018-02-27']
24.16
# 不支持的操作
# 错误
data['2018-02-27']['close']
# 错误
data[:1, :2]
1.2 结合loc或者iloc使用索引
获取从’2018-02-27’:‘2018-02-22’,'close’的结果
# 使用loc:只能指定行列索引的名字
data.loc["2018-02-25":"2018-02-14", "open":"low"]
# 使用iloc可以通过索引的下标去获取
# 获取前3天数据,前5列的结果
data.iloc[:3, :5]
open high close low
2018-02-27 23.53 25.88 24.16 23.53
2018-02-26 22.80 23.78 23.53 22.80
2018-02-23 22.88 23.37 22.82 22.71
1.3 使用ix组合索引
获取行第1天到第4天,[‘open’, ‘close’, ‘high’, ‘low’]这个四个指标的结果
# 使用ix进行下表和名称组合做引
data.ix[0:4, ['open', 'close', 'high', 'low']]
# 推荐使用loc和iloc来获取的方式
data.loc[data.index[0:4], ['open', 'close', 'high', 'low']]
data.iloc[0:4, data.columns.get_indexer(['open', 'close', 'high', 'low'])]
open close high low
2018-02-27 23.53 24.16 25.88 23.53
2018-02-26 22.80 23.53 23.78 22.80
2018-02-23 22.88 22.82 23.37 22.71
2018-02-22 22.25 22.28 22.76 22.02
2 赋值操作
对DataFrame当中的close列进行重新赋值为1
# 直接修改原来的值
data['close'] = 1
# 或者
data.close = 1
3 排序
排序有两种形式,一种对于索引进行排序,一种对于内容进行排序
3.1 DataFrame排序
使用df.sort_values(by=, ascending=)
单个键或者多个键进行排序,
参数:
1.by:指定排序参考的键
2.ascending:默认升序
ascending=False:降序
ascending=True:升序
# 按照开盘价大小进行排序 , 使用ascending指定按照大小排序,取前5行数据
data.sort_values(by="open", ascending=True).head()
# 按照多个键进行排序
data.sort_values(by=['open', 'high'])
使用df.sort_index给索引进行排序
股票的日期索引原来是从大到小,现在重新排序,从小到大。
# 对索引进行排序
data.sort_index()
3.2 Series排序
使用series.sort_values(ascending=True)进行排序
series排序时,只有一列,不需要参数。
data['p_change'].sort_values(ascending=True).head()
2015-09-01 -10.03
2015-09-14 -10.02
2016-01-11 -10.02
2015-07-15 -10.02
2015-08-26 -10.01
Name: p_change, dtype: float64
使用series.sort_index()进行排序,和Dataframe方法一致
# 对索引进行排序
data['p_change'].sort_index().head()
2015-03-02 2.62
2015-03-03 1.44
2015-03-04 1.57
2015-03-05 2.02
2015-03-06 8.51
Name: p_change, dtype: float64
来源:https://blog.csdn.net/hhladminhhl/article/details/109180108


猜你喜欢
- 如何在ADO中使用SQL函数?代码见下:<%Set conn1 = Server.CreateObjec
- 示例:mysql> DELIMITER //mysql> CREATE PROCEDURE `statis`()
- Python输出整数的方法:先使用str()函数将数字转换成字符串赋值给变量i,再用“if i.count('.') ==
- 介绍方法之前,我们先说说Python的解释器,由于Python是动态编译的语言,和C/C++、Java或者Kotlin等静态语言不同,它是在
- 1 问题描述本文对建立好的复合索引进行排序,并取记录中非索引字段,发现索引不生效,例如,有如下表,DDL语句为:CREATE TABLE `
- 一 在写之前 最好指定python的路径:#!/usr/bin/pythonpython 在linux中需要添加编码方式:以免出现中文乱码#
- 被Scrapy自动添加的头部在没有任何配置的情况下,scrapy会对请求默认加上一些头部信息Scrapy会通过配置文件中的USER_AGEN
- 建议有js基础,了解jquery,thinkphp,废话不说多下面就上代码《————HTML————》//thinkphp循环显示把data
- 如下所示:a, b, c = 1, 2, 3 # 1.常规 if a>b: &nbs
- 后台管理配置动态路由菜单前段时间做一个后台管理项目,因为超级管理员可以给普通管理员动态更改权限,所以vue-element-admin里的写
- Web标准的web UI——来源、谬误与个人理解序我从2004年末开始接触web标准,2005年5月正式采取完全的web标准方式的网页制作,
- 目录一、🌕月亮二、🌕雪花月饼一、🌕月亮导入库matplotlib和numpy,作为工具直接用。from mpl_toolkits.mplot
- 在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一,数组是值的有序集合,由于弱类型的原因,JavaScrip
- 问题:在使用mask_rcnn预测自己的数据集时,会出现下面错误:ResourceExhaustedError: OOM when allo
- <script language="JavaScript"> //得到字符总数function getCha
- 如果直接从生成验证码的页面把验证码下载到本地后识别,再构造表单数据发送的话,会有一个验证码同步的问题,即请求了两次验证码,而识别出来的验证码
- 前言 PCA降维,一般是用于数据分析和机器学习
- 前言面对计算密集型的任务,除了多进程,就是分布式计算,如何用 Python 实现分布式计算呢?今天分享一个很简单的方法,那就是借助于 Ray
- 微信小程序分享效果:js代码:page({/** * 用户点击分享按钮或右上角分享 */ onShareAppMessage: functi
- 1. 实验环境Jupyter NotebookPython 3.7PyTorch 1.4.02. 实验目的迁移学习,让机器拥有能够&