数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(7)

news/2024/3/28 23:37:33/文章来源:https://blog.csdn.net/qq_52007481/article/details/127623404

文章目录

    • 前期准备
    • 1. 以df的列名创建一个DataFrame
    • 2. 打印所有换手率为非数字的行
    • 3. 删除所有换手率为非数字的行
    • 4. 重置df的行号
    • 5. 绘制‘还手’密度曲线
    • 6. 计算后一天和前一天收盘价的差值
    • 7. 计算后一天与前一天收盘价的变化率
    • 8. 设置时间索引
    • 9. 使用时间索引,分别按年份,月份取值
    • 10. 以5个数据作为数据滑动窗口 在这5个数据上取均值(收盘价)

本章使用还是金融数据集,不仅回顾的旧的知识点,还拓展了一些新的内容,主要的难点在于重置索引reset_index(),计算一列的差分diff(),时间索引的操作,滑动窗口的使用rolling()

前期准备

import pandas as pd
import numpy as np
# 导入绘图工具
from matplotlib import pyplot as plt
# 使图形中的中文正常编码显示
plt.rcParams['font.sans-serif'] = ['SimHei']
# 使坐标轴刻度表签正常显示正负号
plt.rcParams['axes.unicode_minus'] = False# 导入数据,删除有任何空值的行
df = pd.read_excel(r'D:\Python work space\jupyter\Pandas必刷100道题\600000.SH.xls')
df.dropna(axis=0,how='any',inplace=True)
df

在这里插入图片描述

1. 以df的列名创建一个DataFrame

创建的DataFrame只有列名,并没有数据

# 以df的列名创建一个DataFrame
temp = pd.DataFrame(columns=df.columns)
temp

在这里插入图片描述

2. 打印所有换手率为非数字的行

由表可知我们能够发现还手率都是小数,我们只需要判断该元素的数据类型是否为float类型

temp = []   # 存放所有的非数字的行号
for i in range(len(df)):if type(df['换手率(%)'][i]) != float:  # 判断该元素的数据类型是不是float类型temp.append(i)   # 记录不是数字的行索引
df.iloc[temp]

由图我们可以知道 换手率非数字的值均为--
在这里插入图片描述

3. 删除所有换手率为非数字的行

因为还手率的非数字行的会影响后面的分析,所以我们要将其删除

本次例题因为后面只分析还手率,所以就直接删原数据了,但是在实际中,可能其他数据还有用,不能轻易的删除

temp = []   # 存放所有的非数字的行号
for i in range(len(df)):if type(df['换手率(%)'][i]) != float:temp.append(i)
df= df.drop(labels=temp)
df

4. 重置df的行号

因为删除过部分行之后,索引就不连续了,不便于观察数据一共有多少行,会影响一些分析,所以我们就要删除一部分数据
使用是reset_index函数
参数

  • drop=True 删除上次的索引,默认不会删除
  • inplace=True 修改原数据,默认不会修改原数据,会返回一个新的对象
# 重置data的行号
df.reset_index(drop=True,inplace=True)  
df

观察最后几行,能够发现索引已经更新
在这里插入图片描述

5. 绘制‘还手’密度曲线

绘制这个图形主要是能够让我们直观的观察到还手率集中到那个地方

df['换手率(%)'].plot(kind='kde')

从图中我们能够直观的发现数据多集中在0.0-0.2之间
在这里插入图片描述

6. 计算后一天和前一天收盘价的差值

  • 使用shift()函数
    shift(n)n为正数该列向下移动n行,当n负数时该列向上移动|n|
# 后一天减去前一天
df['收盘价(元)'] - df['收盘价(元)'].shift(1)
  • 使用diff()函数 默认为一阶差分
    进一步简化了同一列差值的计算
    df[].diff(n) 等价于 df[] - df[]..shift(n)
df['收盘价(元)'].diff()  # 默认值为1,叫做一阶差分
# 等价于df['收盘价(元)'] - df['收盘价(元)'].shift(1)

在这里插入图片描述

7. 计算后一天与前一天收盘价的变化率

pct_change()也是一个简化的形式
具体情况看代码部分

# 计算前一天与后一天收盘价的变化率
df['收盘价(元)'].pct_change()
# 等价于df['收盘价(元)'].diff()/df['收盘价(元)']

在这里插入图片描述

8. 设置时间索引

设置索引,当所设置的列表示的是时间,就代表该索引是时间索引,时间索引值在实际生活中非常常见,时间索引也有自己独特的操作方式,按月取值,按周取值,取一年中的第几天等这些在普通索引看来非常困难的事情,对于时间索引来说却非常简单

df.set_index('日期')

9. 使用时间索引,分别按年份,月份取值

  • 只取2016年的数据
df['2016']

在这里插入图片描述

  • 取2017年3月份的数据
df['2017-3']

在这里插入图片描述

另外还可以按照季度,周目,获取某一年的第几天,时间索引的操作我会单独

10. 以5个数据作为数据滑动窗口 在这5个数据上取均值(收盘价)

滑动窗口,每次移动一个单位,窗口内的数据始终是5个,

df['收盘价(元)'].rolling(5).mean()  # 计算每次窗口内的平均值

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_410254.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript 49 JavaScript 作用域

JavaScript 文章目录JavaScript49 JavaScript 作用域49.1 JavaScript 函数作用域49.2 局部 JavaScript 变量49.3 全局 JavaScript 变量49.4 JavaScript 变量49.5 自动全局49.6 严格模式49.7 HTML 中的全局变量49.8 警告49.9 JavaScript 变量的有效期49.10 函数参数49 JavaScrip…

Mysql深度解析(一)索引底层数据结构与算法

MySQL底层索引是用B树实现的 传送门:什么是B-树、B树、B*树 传送门:深入理解MySQL索引底层数据结构与算法 传送门:MySQL中Innodb的索引 1 索引是什么? 索引:帮助Mysql高效获取数据的排好序的数据结构。 2 Mysql索引为什么用…

Sping的IoC容器和依赖注入

IoC Inversion of Control 使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转 Spring实现了IoC的思想,Spring提供了一个容器,称为IoC容器,用…

【CSS】CSS选择器全解指南【CSS基础知识详解】

👨‍💻个人主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 本文章收录于专栏 【CSS】 【CSS专栏】已发布文章 📁【CSS基础认知】 本文目录【CSS选择器全解指南】🌙CSS注…

SpringBoot 转发请求至指定页面

1、前言 原先的页面访问地址为:http://127.0.0.1:8888/office/schdule/index/, 重构项目,SpringBoot 项目,前后分离,前端文件放置静态目录(static)下,访问地址:http://12…

计算机毕业设计(附源码)python疫情管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

URP下的OffScreen Particle Render

【博物纳新】专栏是UWA旨在为开发者推荐新颖、易用、有趣的开源项目,帮助大家在项目研发之余发现世界上的热门项目、前沿技术或者令人惊叹的视觉效果,并探索将其应用到自己项目的可行性。很多时候,我们并不知道自己想要什么,直到某一天我们遇到了它。随着越来越多的项目使用…

jsp个人评价管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 个人评价管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,使…

多模态自编码器从EEG信号预测fNIRS静息态

导读 本研究介绍了一种深度学习架构,用于评估40名癫痫患者的多模态脑电图(EEG)和功能性近红外光谱(fNIRS)记录。长短期记忆网络和卷积神经网络集成在一个多模态序列到序列的自编码器中。训练后的神经网络通过从EEG全谱和特定EEG频段中分层提取深度特征,…

fscan:一键自动化、全方位漏洞扫描的开源工具

https://blog.csdn.net/osfront/article/details/116049846 打开服务器看到了一个软件fscan64,并有运行页面。因为没见过,吓了我一跳,搜索了下是什么,记录下。 简介 fscan 是一个内网综合扫描工具,方便一键自动化、全方位漏洞扫描。 它支持主机存活探测、端口扫描、常见服务…

【Java数据结构】顺序表

我们不过是普通人,只不过在彼此眼中闪闪发光 目录 1.模拟实现顺序表 1.1 顺序的结构 1.2 顺序表的成员属性 1.3 顺序表的构造方法 1.4 顺序表的成员方法 1.4.1 扩容 1.4.2 打印顺序表 1.4.3 尾插 1.4.4 在指定位置插入 1.4.5 判断数组中是否有这个元素…

SSH婴幼儿产品销售系统电商购物系统(含源码+论文+答辩PPT等)

该项目采用技术JSP、strust2、Spring、Hibernate、Tomcat服务器、MySQL数据库 ,项目含有源码、论文、配套开发软件、软件安装教程、项目发布教程 本系统结构如下: 1,游客访问 |–系统首页,查看所有的商品信息和相关的菜单信息 |–…

每日一记:笔记工具使用、计算机基础知识、编程语言认识

1、笔记工具的使用 我现在使用的是typora这个文档工具 markdown语法 常见操作有:标题、代码块、引用、列表等 typora工具的主页面 我们可以编辑内容 做笔记 。。。 标题分类: 和html(超文本标记语言 前端部分一样)分为六级标题…

拉卡拉第三季营收13.45亿:净利8372万 同比降73%

雷递网 雷建平 10月31日拉卡拉支付股份有限公司(证券代码:300773,证券简称:拉卡拉)日前发布财报,财报显示,拉卡拉2022年前三季营收43.55亿元,同比降11.83%;拉卡拉2022年前…

Shell编程从看懂到看开②(字符串、数组、注释、流程控制、read读取控制台输入)

文章目录Shell字符串单引号双引号拼接字符串获取字符串长度提取子字符串查找子字符串Shell数组定义数组读取数组获取数组的长度Shell注释流程控制if判断case语句for 循环while 循环read 读取控制台输入Shell字符串 字符串是shell编程中最常用最有用的数据类型(除了…

【DDR3 控制器设计】(5)DDR3 的仲裁读写操作设计

写在前面 本系列为 DDR3 控制器设计总结,此系列包含 DDR3 控制器相关设计:认识 MIG、初始化、读写操作、FIFO 接口等。通过此系列的学习可以加深对 DDR3 读写时序的理解以及 FIFO 接口设计等,附上汇总博客直达链接。 【DDR3 控制器设计】系列…

爆破校园网的宽带

前提:学校的手机号前7位相同,宽带密码都是手机号后六位。仅供学习。 准备工作:电脑一台,把校园网的宽带水晶头插在电脑上, 步骤: winR输入Rasphone点击新建,宽带,输入宽带名称&am…

Kubernetes(31):kubeasz单主机模式

前言 有时候,我们只需要k8s集群进行项目测试,能够使用的主机可能只有一台,那么如何构建一台单机的k8s集群? 单机版的k8s集群可以用于本地测试,或者内部测试环境,或者个人电脑上的项目测试。 那么我们可以使…

Html保留空格和换行

效果&#xff1a; 代码&#xff1a; <pre> 这是一段文本这是一段文本这是一段文 本这是一 段文本这是一段文本 </pre>

会话技术(Session、Cookie)详细介绍

会话技术 request&#xff1a;接收请求 接收请求行 接收请求方式&#xff1a;request.getMethod()接收项目路径&#xff1a;request.getContextPath() 接收请求头 request.getHeader(String name) 接收请求参数 中文参数&#xff1a; get方式&#xff1a;不乱码。因为tomcat8.…