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

这篇具有很好参考价值的文章主要介绍了数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(7)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本章使用还是金融数据集,不仅回顾的旧的知识点,还拓展了一些新的内容,主要的难点在于重置索引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

pandas删除不是数字的行,数据分析,pandas,数据分析,python

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

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

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

pandas删除不是数字的行,数据分析,pandas,数据分析,python

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

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

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

由图我们可以知道 换手率非数字的值均为--
pandas删除不是数字的行,数据分析,pandas,数据分析,python

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

观察最后几行,能够发现索引已经更新
pandas删除不是数字的行,数据分析,pandas,数据分析,python

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

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

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

从图中我们能够直观的发现数据多集中在0.0-0.2之间
pandas删除不是数字的行,数据分析,pandas,数据分析,python

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)

pandas删除不是数字的行,数据分析,pandas,数据分析,python

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

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

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

pandas删除不是数字的行,数据分析,pandas,数据分析,python

8. 设置时间索引

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

df.set_index('日期')

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

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

pandas删除不是数字的行,数据分析,pandas,数据分析,python

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

pandas删除不是数字的行,数据分析,pandas,数据分析,python

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

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

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

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

pandas删除不是数字的行,数据分析,pandas,数据分析,python
pandas删除不是数字的行,数据分析,pandas,数据分析,python

pandas删除不是数字的行,数据分析,pandas,数据分析,python文章来源地址https://www.toymoban.com/news/detail-608954.html

到了这里,关于数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(7)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

    准备后期要使用的数据,使用字典创建DataFrame对象 保存文件的函数一般是 to_xxx 通过DataFrame的对象的属性查看数据行列数 也可以通过其他的方式进行查询,但是这种是最便捷的 使用的是布尔值索引还有进行合取操作 其实这个交换位置,内在的逻辑就是先取出交换后的数据,

    2024年02月11日
    浏览(37)
  • 数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(4)

    本章的十道题与前面的试题相连接,数据集用的同一个数据集一些操作也是基于上一个练习的 本次导包多导入了一个绘图的包,在这里我们只是简单的应用,后面会有详细的讲解用法 数据集没有的可以私信我,也可以直接去我的资源里面找 中位数(Median)又称中值,统计学

    2024年02月05日
    浏览(41)
  • 国际旅游网络的大数据分析(数学建模练习题)

    伴随着大数据时代的到来,数据分析已经深入到现代社会生活中的各个方面。 无论是国家政府部门、企事业单位还是个人,数据分析工作都是进行决策之前的 重要环节。 山东省应用统计学会是在省民政厅注册的学术类社会组织,于 1989 年成立。 学会是全省目前从事统计调查

    2024年02月11日
    浏览(52)
  • Pandas十大练习题,掌握常用方法

    代码均在Jupter Notebook上完成 数据集可从此获取: 链接: https://pan.baidu.com/s/1YGwh3pqxW4OlrQXt-5wgFg?pwd=3znx 提取码: 3znx 简介 数据集 1.分析Chipotle快餐数据 chipotle.tsv 2.分析2012欧洲杯数据 Euro2012_stats.csv 3.分析酒类消费数据 drinks.csv 4.分析1960 - 2014 美国犯罪数据 US_Crime_Rates_1960_2014.csv 5.分

    2024年01月16日
    浏览(53)
  • 【Python练习】数据分析库Pandas

    1. 了解Serie

    2024年02月09日
    浏览(60)
  • 日志审计与分析练习题

    1.  ( 单选题) 【单选题】以下关于日志的描述不正确的是( ) A. 日志是在事故发生后查明“发生了什么”的一个很好的“取证”信息来源,但无法为审计进行跟踪 B. 日志是由各种不同的实体产生的“安全记录”的集合 C. 通常为计算机系统、设备、软件等在某种情况下记录的信息

    2024年02月08日
    浏览(55)
  • 【算法设计与分析】动态规划-练习题

    输入一个整数数组 S[n] ,计算其最长递增子序列的长度,及其最长递增子序列。 定义 k ( 1 ≤ k ≤ n ) k (1 ≤ k ≤ n) k ( 1 ≤ k ≤ n ) ,L[k]表示以 S[k] 结尾的递增子序列的最大长度。子问题即为 L[k]。 对于每一个k,我们都遍历前面0~k-1的所有的数,找出最大的L[i],且 S [ k ] L [

    2024年02月03日
    浏览(58)
  • C语言:指针【进阶】习题练习及分析讲解

    前言: 前面我们刚刚学完了C语言:指针详解【进阶】的知识,这部分的知识还是要重在理解加实践,今天我这里就分享一些有关C语言指针方面的练习供大家更深入的理解指针的知识。 我们初期的指针学习大部分都是与数组的知识绑定在一起的,所以今天的练习也是大多与数

    2024年02月02日
    浏览(49)
  • 数据结构——二叉树练习题

    目录 单值二叉树  相同的树  另一棵树的子树 二叉树的前序遍历  二叉树的构造及遍历 给大家推荐一款刷题,找工作的好网站——牛客网 牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网   思路:根节点跟左子树比较,若相等则继续比,一

    2024年02月11日
    浏览(40)
  • MySQL:数据库练习题-1

    表一:employees 表二:salary 表三:departments 练习题及答案: ---1、查询empioyees表的员工部门号和性别,要求消除重复行 ---2、计算每个雇员的实际收入(实际收入=收入-支出) ---3、查询employees表中的姓名和性别,要求性别值为1时显示为“男”,为0时显示为“女” ---4、查询每

    2024年02月04日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包