当前位置: 首页 > news >正文

莆田市建设局网站互联网+大学生创新创业项目官网

莆田市建设局网站,互联网+大学生创新创业项目官网,新版wordpress编辑器,注册城乡规划师目录 往期内容#xff1a;第一期#xff1a;Pandas基础#xff08;1-20题#xff09;第二期#xff1a;Pandas数据处理#xff08;21-50题#xff09; 第三期 金融数据处理51.使用绝对路径读取本地Excel数据方法一#xff1a;双反斜杠绝对路径方法二#xff1a;r 拓展… 目录 往期内容第一期Pandas基础1-20题第二期Pandas数据处理21-50题 第三期 金融数据处理51.使用绝对路径读取本地Excel数据方法一双反斜杠绝对路径方法二r 拓展关于正斜杠( / )和反斜杠( \ ) 52.查看数据前三行53.查看每列数据缺失值情况54.提取日期列含有空值的行55.输出每列缺失值具体行数方法一根据列名遍历直接打印空缺值的行方法二标准答案 56.删除所有存在缺失值的行57.绘制收盘价的折线图方法一直接使用.plot绘制 58.同时绘制开盘价与收盘价59.绘制涨跌幅的直方图60.让直方图更细致61.以data的列名创建一个DataFrame62.打印所有换手率不是数字的行63.打印所有换手率为--的行方法一逐一判断保存方法二根据 isin() 判断是否具有包含关系 64.重置data的行号65.删除所有换手率为非数字的行66.绘制换手率的密度曲线67.计算前一天与后一天收盘价的差值方法一基于业务上的理解直接使用收盘价-前一天的收盘价方法二直接使用.diff() 计算 68.计算前一天与后一天收盘价变化率方法一根据业务知识计算变化率方法二直接使用pct_change() 计算 69.设置日期为索引70.以5个数据作为一个数据滑动窗口在这个5个数据上取均值(收盘价)71.以5个数据作为一个数据滑动窗口计算这五个数据总和(收盘价)72.将收盘价5日均线、20日均线与原始数据绘制在同一个图上73.按周为采样规则取一周收盘价最大值方法一使用滑动窗口以7天为采样方法二正解按周重采样rolling() 和 ressample() 的区别与联系 74.绘制重采样数据与原始数据75.将数据往后移动5天76.将数据向前移动5天77.使用expending函数计算开盘价的移动窗口均值78.绘制上一题的移动均值与原始数据折线图79.计算布林指标80.计算布林线并绘制 自己再写一遍的pandas习题相比于标准答案添加了自己的理解与注释也可直接下载链接上的习题 链接https://pan.baidu.com/s/1arrqcBFZKqJngzRzUB2QfA?pwd29eb 提取码29eb –来自百度网盘超级会员V3的分享 往期内容 第一期Pandas基础1-20题 第二期Pandas数据处理21-50题 第三期 金融数据处理 import pandas as pd import numpy as np import matplotlib.pyplot as pltplt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False51.使用绝对路径读取本地Excel数据 方法一双反斜杠绝对路径 data pd.read_excel(pandas120_51_80.xlsx)data pd.read_excel(C:\\Users\\XXX\\Desktop\\DataAnalyse\\组内出数任务\\data1\\pandas120\\pandas120_51_80.xlsx)方法二r’ ’ ![请添加图片描述](https://img-blog.csdnimg.cn/4972169546374a668c2d253927c331b1.png) data pd.read_excel(rC:\Users\XXX\Desktop\DataAnalyse\组内出数任务\data1\pandas120\pandas120_51_80.xlsx)拓展关于正斜杠(’ / ‘)和反斜杠(’ \ ) 关于正斜杠(’ / ‘)和反斜杠(’ \ ) 在文件路径中使用正斜杠(’ / ‘)还是反斜杠(’ \ )取决于所使用的操作系统。这里有一个简短的概述: 正斜杠(’ / ‘):这是Unix和类Unix系统(如Linux和macOS)的标准。例如Unix系统中的路径可能看起来像’ /home/user/documents/file.txt 。 反斜杠(’ \ ):这是Windows的标准。例如Windows系统中的路径可能看起来像“C:\Users\Username\Documents\file.txt”。 然而有几件事要记住: 在许多编程语言中反斜杠(’ \ ‘)是一个转义字符这意味着它用于引入特殊字符序列。例如’ \n ‘是换行符’ \t ‘是制表符。因此如果您在Python或Java等语言的路径中使用反斜杠则需要转义它们(’ \ )或使用原始字符串字面量(例如在Python中‘r ’ c:\path\to\file’ )。 现代版本的Windows在某种程度上是宽容的并且会接受正斜杠尽管这有时会导致意想不到的行为如果一个程序不期望它。通常最好使用您的操作系统的标准格式。 处理url或uri时无论您的操作系统如何始终使用正斜杠。这是网址的标准格式。 如果你正在编写一个程序需要在不同的操作系统之间移植考虑使用一个函数或库以一种平台独立的方式处理文件路径。例如在Python中你可以使用’ os.path.join() 来构造路径它将使用当前操作系统的正确分隔符。 # 示例 import os# This will use the correct separator for the current OS path os.path.join(home, user, documents, file.txt) pathhome\\user\\documents\\file.txt52.查看数据前三行 data.head(3)代码简称日期前收盘价(元)开盘价(元)最高价(元)最低价(元)收盘价(元)成交量(股)成交金额(元)涨跌(元)涨跌幅(%)均价(元)换手率(%)A股流通市值(元)总市值(元)A股流通股本(股)市盈率0600000.SH浦发银行2016-01-0416.135616.144416.144415.499715.720542240610754425783-0.4151-2.572517.86020.22643.320318e113.320318e111.865347e106.56141600000.SH浦发银行2016-01-0515.720515.464415.950115.367215.86185805479310341814740.14130.898917.81390.31123.350163e113.350163e111.865347e106.62042600000.SH浦发银行2016-01-0615.861815.808816.020815.623415.9855467726538386673980.12360.779517.93070.25073.376278e113.376278e111.865347e106.6720 53.查看每列数据缺失值情况 使用df.isnull().any()只能判断每列有无空值,如果想要输出空值的数量需要使用df.isnull().sum() sum():此方法在df.isnull()的结果上调用。由于True等于1,False等于0因此求和操作将计算每列中True值(即null或NaN值)的数量。 因此总而言之df.isnull().sum()是一个方便的一行代码它将返回DataFrame df的每列中缺失或NaN值的数量。 data.isnull().any()代码 True 简称 True 日期 True 前收盘价(元) True 开盘价(元) True 最高价(元) True 最低价(元) True 收盘价(元) True 成交量(股) True 成交金额(元) True 涨跌(元) True 涨跌幅(%) True 均价(元) True 换手率(%) True A股流通市值(元) True 总市值(元) True A股流通股本(股) True 市盈率 True dtype: booldata.isnull().sum()代码 1 简称 2 日期 2 前收盘价(元) 2 开盘价(元) 2 最高价(元) 2 最低价(元) 2 收盘价(元) 2 成交量(股) 2 成交金额(元) 2 涨跌(元) 2 涨跌幅(%) 2 均价(元) 2 换手率(%) 2 A股流通市值(元) 2 总市值(元) 2 A股流通股本(股) 2 市盈率 2 dtype: int6454.提取日期列含有空值的行 data[data[日期].isnull()]代码简称日期前收盘价(元)开盘价(元)最高价(元)最低价(元)收盘价(元)成交量(股)成交金额(元)涨跌(元)涨跌幅(%)均价(元)换手率(%)A股流通市值(元)总市值(元)A股流通股本(股)市盈率327NaNNaNNaTNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN328数据来源Wind资讯NaNNaTNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN 55.输出每列缺失值具体行数 方法一根据列名遍历直接打印空缺值的行 for name in data.columns:print({}列空缺值的行为{}.format(name,data[data[name].isnull()].index.tolist()))代码列空缺值的行为[327] 简称列空缺值的行为[327, 328] 日期列空缺值的行为[327, 328] 前收盘价(元)列空缺值的行为[327, 328] 开盘价(元)列空缺值的行为[327, 328] 最高价(元)列空缺值的行为[327, 328] 最低价(元)列空缺值的行为[327, 328] 收盘价(元)列空缺值的行为[327, 328] 成交量(股)列空缺值的行为[327, 328] 成交金额(元)列空缺值的行为[327, 328] 涨跌(元)列空缺值的行为[327, 328] 涨跌幅(%)列空缺值的行为[327, 328] 均价(元)列空缺值的行为[327, 328] 换手率(%)列空缺值的行为[327, 328] A股流通市值(元)列空缺值的行为[327, 328] 总市值(元)列空缺值的行为[327, 328] A股流通股本(股)列空缺值的行为[327, 328] 市盈率列空缺值的行为[327, 328]方法二标准答案 相比自己写的方法在遍历时多了一步对于该列有无空缺值的判断代码写的比较清晰 for name in data.columns:if data[name].isnull().any():location data[data[name].isnull() True].index.to_list()print(列名{}, 第{}行位置有缺失值.format(name, location))列名代码, 第[327]行位置有缺失值 列名简称, 第[327, 328]行位置有缺失值 列名日期, 第[327, 328]行位置有缺失值 列名前收盘价(元), 第[327, 328]行位置有缺失值 列名开盘价(元), 第[327, 328]行位置有缺失值 列名最高价(元), 第[327, 328]行位置有缺失值 列名最低价(元), 第[327, 328]行位置有缺失值 列名收盘价(元), 第[327, 328]行位置有缺失值 列名成交量(股), 第[327, 328]行位置有缺失值 列名成交金额(元), 第[327, 328]行位置有缺失值 列名涨跌(元), 第[327, 328]行位置有缺失值 列名涨跌幅(%), 第[327, 328]行位置有缺失值 列名均价(元), 第[327, 328]行位置有缺失值 列名换手率(%), 第[327, 328]行位置有缺失值 列名A股流通市值(元), 第[327, 328]行位置有缺失值 列名总市值(元), 第[327, 328]行位置有缺失值 列名A股流通股本(股), 第[327, 328]行位置有缺失值 列名市盈率, 第[327, 328]行位置有缺失值56.删除所有存在缺失值的行 备注 axis0-行操作默认1-列操作 howany-只要有空值就删除默认all-全部为空值才删除 inplaceFalse-返回新的数据集默认True-在原数据集上操作data.dropna(axis 0,how any,inplace True)57.绘制收盘价的折线图 方法一直接使用.plot绘制 data[收盘价(元)].plot(kind line)​ # 等价于 plt.plot(data[收盘价(元)])​ 58.同时绘制开盘价与收盘价 data[[开盘价(元),收盘价(元)]].plot()​ 59.绘制涨跌幅的直方图 data[涨跌幅(%)].plot(kind hist)​ 60.让直方图更细致 # import matplotlib.pyplot as plt # 如果之前运行过就不要再执行可能会重置设置导致汉字不显示n, bins, patches plt.hist(data[涨跌幅(%)],bins 30,edgecolor black) print(n) # [ 1. 0. 0. 0. 0. 0. 0. 0. 1. 0. 4. 3. 4. 10. 18. 42. 109. 73. 31. 12. 10. 3. 1. 1. 1. 1. 0. 0.0. 2.] print(bins) # [-8.0217 -7.54621667 -7.07073333 -6.59525 -6.11976667 -5.64428333# -5.1688 -4.69331667 -4.21783333 -3.74235 -3.26686667 -2.79138333# -2.3159 -1.84041667 -1.36493333 -0.88945 -0.41396667 0.06151667# 0.537 1.01248333 1.48796667 1.96345 2.43893333 2.91441667# 3.3899 3.86538333 4.34086667 4.81635 5.29183333 5.76731667# 6.2428 ] print(patches) # BarContainer object of 30 artists # Add labels to each bin for i in range(len(patches)):plt.text(patches[i].get_x()patches[i].get_width()/2.,patches[i].get_height(),f{n[i]:.0f},ha center) plt.title(Frequency Distribution of 涨跌幅 Levels) plt.xlabel(涨跌幅) plt.ylabel(Frequency) plt.show()​ 61.以data的列名创建一个DataFrame temp pd.DataFrame(columns data.columns) temp代码简称日期前收盘价(元)开盘价(元)最高价(元)最低价(元)收盘价(元)成交量(股)成交金额(元)涨跌(元)涨跌幅(%)均价(元)换手率(%)A股流通市值(元)总市值(元)A股流通股本(股)市盈率 62.打印所有换手率不是数字的行 for i in range(len(data)):if type(data.loc[i,换手率(%)])!float:temp temp.append(data.loc[i])temp代码简称日期前收盘价(元)开盘价(元)最高价(元)最低价(元)收盘价(元)成交量(股)成交金额(元)涨跌(元)涨跌幅(%)均价(元)换手率(%)A股流通市值(元)总市值(元)A股流通股本(股)市盈率26600000.SH浦发银行2016-02-16 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80127600000.SH浦发银行2016-02-17 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80128600000.SH浦发银行2016-02-18 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80129600000.SH浦发银行2016-02-19 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80130600000.SH浦发银行2016-02-22 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80131600000.SH浦发银行2016-02-23 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80132600000.SH浦发银行2016-02-24 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80133600000.SH浦发银行2016-02-25 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80134600000.SH浦发银行2016-02-26 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80135600000.SH浦发银行2016-02-29 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80136600000.SH浦发银行2016-03-01 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80137600000.SH浦发银行2016-03-02 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80138600000.SH浦发银行2016-03-03 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80139600000.SH浦发银行2016-03-04 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80140600000.SH浦发银行2016-03-07 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80141600000.SH浦发银行2016-03-08 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80142600000.SH浦发银行2016-03-09 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80143600000.SH浦发银行2016-03-10 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.801 data.info()class pandas.core.frame.DataFrame Int64Index: 327 entries, 0 to 326 Data columns (total 18 columns):# Column Non-Null Count Dtype --- ------ -------------- ----- 0 代码 327 non-null object 1 简称 327 non-null object 2 日期 327 non-null datetime64[ns]3 前收盘价(元) 327 non-null float64 4 开盘价(元) 327 non-null float64 5 最高价(元) 327 non-null float64 6 最低价(元) 327 non-null float64 7 收盘价(元) 327 non-null float64 8 成交量(股) 327 non-null object 9 成交金额(元) 327 non-null object 10 涨跌(元) 327 non-null float64 11 涨跌幅(%) 327 non-null float64 12 均价(元) 327 non-null object 13 换手率(%) 327 non-null object 14 A股流通市值(元) 327 non-null float64 15 总市值(元) 327 non-null float64 16 A股流通股本(股) 327 non-null float64 17 市盈率 327 non-null float64 dtypes: datetime64[ns](1), float64(11), object(6) memory usage: 56.6 KB63.打印所有换手率为–的行 方法一逐一判断保存 for i in range(len(data)):if data.loc[i,换手率(%)]--:temp temp.append(data.loc[i])temp代码简称日期前收盘价(元)开盘价(元)最高价(元)最低价(元)收盘价(元)成交量(股)成交金额(元)涨跌(元)涨跌幅(%)均价(元)换手率(%)A股流通市值(元)总市值(元)A股流通股本(股)市盈率26600000.SH浦发银行2016-02-16 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80127600000.SH浦发银行2016-02-17 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80128600000.SH浦发银行2016-02-18 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80129600000.SH浦发银行2016-02-19 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80130600000.SH浦发银行2016-02-22 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80131600000.SH浦发银行2016-02-23 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80132600000.SH浦发银行2016-02-24 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80133600000.SH浦发银行2016-02-25 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80134600000.SH浦发银行2016-02-26 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80135600000.SH浦发银行2016-02-29 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80136600000.SH浦发银行2016-03-01 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80137600000.SH浦发银行2016-03-02 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80138600000.SH浦发银行2016-03-03 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80139600000.SH浦发银行2016-03-04 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80140600000.SH浦发银行2016-03-07 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80141600000.SH浦发银行2016-03-08 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80142600000.SH浦发银行2016-03-09 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80143600000.SH浦发银行2016-03-10 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80126600000.SH浦发银行2016-02-16 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80127600000.SH浦发银行2016-02-17 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80128600000.SH浦发银行2016-02-18 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80129600000.SH浦发银行2016-02-19 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80130600000.SH浦发银行2016-02-22 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80131600000.SH浦发银行2016-02-23 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80132600000.SH浦发银行2016-02-24 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80133600000.SH浦发银行2016-02-25 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80134600000.SH浦发银行2016-02-26 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80135600000.SH浦发银行2016-02-29 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80136600000.SH浦发银行2016-03-01 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80137600000.SH浦发银行2016-03-02 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80138600000.SH浦发银行2016-03-03 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80139600000.SH浦发银行2016-03-04 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80140600000.SH浦发银行2016-03-07 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80141600000.SH浦发银行2016-03-08 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80142600000.SH浦发银行2016-03-09 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.80143600000.SH浦发银行2016-03-10 00:00:0016.294616.294616.294616.294616.2946----0.00.0----344156547606.75344156547606.7518653471415.06.801 方法二根据 isin() 判断是否具有包含关系 data[data[换手率(%)].isin([--])] # 注意传入的值是列表类型的数据代码简称日期前收盘价(元)开盘价(元)最高价(元)最低价(元)收盘价(元)成交量(股)成交金额(元)涨跌(元)涨跌幅(%)均价(元)换手率(%)A股流通市值(元)总市值(元)A股流通股本(股)市盈率26600000.SH浦发银行2016-02-1616.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80127600000.SH浦发银行2016-02-1716.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80128600000.SH浦发银行2016-02-1816.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80129600000.SH浦发银行2016-02-1916.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80130600000.SH浦发银行2016-02-2216.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80131600000.SH浦发银行2016-02-2316.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80132600000.SH浦发银行2016-02-2416.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80133600000.SH浦发银行2016-02-2516.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80134600000.SH浦发银行2016-02-2616.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80135600000.SH浦发银行2016-02-2916.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80136600000.SH浦发银行2016-03-0116.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80137600000.SH浦发银行2016-03-0216.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80138600000.SH浦发银行2016-03-0316.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80139600000.SH浦发银行2016-03-0416.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80140600000.SH浦发银行2016-03-0716.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80141600000.SH浦发银行2016-03-0816.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80142600000.SH浦发银行2016-03-0916.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.80143600000.SH浦发银行2016-03-1016.294616.294616.294616.294616.2946----0.00.0----3.441565e113.441565e111.865347e106.801 64.重置data的行号 data.reset_index(drop True) data.head()代码简称日期前收盘价(元)开盘价(元)最高价(元)最低价(元)收盘价(元)成交量(股)成交金额(元)涨跌(元)涨跌幅(%)均价(元)换手率(%)A股流通市值(元)总市值(元)A股流通股本(股)市盈率0600000.SH浦发银行2016-01-0416.135616.144416.144415.499715.720542240610754425783-0.4151-2.572517.86020.22643.320318e113.320318e111.865347e106.56141600000.SH浦发银行2016-01-0515.720515.464415.950115.367215.86185805479310341814740.14130.898917.81390.31123.350163e113.350163e111.865347e106.62042600000.SH浦发银行2016-01-0615.861815.808816.020815.623415.9855467726538386673980.12360.779517.93070.25073.376278e113.376278e111.865347e106.67203600000.SH浦发银行2016-01-0715.985515.720515.808815.367215.464411350479199502702-0.5211-3.259717.57660.06083.266223e113.266223e111.865347e106.45454600000.SH浦发银行2016-01-0815.464415.667515.791214.934515.4467719182961262105060-0.0177-0.114217.54920.38553.262492e113.262492e111.865347e106.4471 data.info()class pandas.core.frame.DataFrame Int64Index: 327 entries, 0 to 326 Data columns (total 18 columns):# Column Non-Null Count Dtype --- ------ -------------- ----- 0 代码 327 non-null object 1 简称 327 non-null object 2 日期 327 non-null datetime64[ns]3 前收盘价(元) 327 non-null float64 4 开盘价(元) 327 non-null float64 5 最高价(元) 327 non-null float64 6 最低价(元) 327 non-null float64 7 收盘价(元) 327 non-null float64 8 成交量(股) 327 non-null object 9 成交金额(元) 327 non-null object 10 涨跌(元) 327 non-null float64 11 涨跌幅(%) 327 non-null float64 12 均价(元) 327 non-null object 13 换手率(%) 327 non-null object 14 A股流通市值(元) 327 non-null float64 15 总市值(元) 327 non-null float64 16 A股流通股本(股) 327 non-null float64 17 市盈率 327 non-null float64 dtypes: datetime64[ns](1), float64(11), object(6) memory usage: 56.6 KB65.删除所有换手率为非数字的行 k [] for i in range(len(data)):if type(data.loc[i,换手率(%)]) ! float:k.append(i) data data.drop(k) data.head()代码简称日期前收盘价(元)开盘价(元)最高价(元)最低价(元)收盘价(元)成交量(股)成交金额(元)涨跌(元)涨跌幅(%)均价(元)换手率(%)A股流通市值(元)总市值(元)A股流通股本(股)市盈率0600000.SH浦发银行2016-01-0416.135616.144416.144415.499715.720542240610754425783-0.4151-2.572517.86020.22643.320318e113.320318e111.865347e106.56141600000.SH浦发银行2016-01-0515.720515.464415.950115.367215.86185805479310341814740.14130.898917.81390.31123.350163e113.350163e111.865347e106.62042600000.SH浦发银行2016-01-0615.861815.808816.020815.623415.9855467726538386673980.12360.779517.93070.25073.376278e113.376278e111.865347e106.67203600000.SH浦发银行2016-01-0715.985515.720515.808815.367215.464411350479199502702-0.5211-3.259717.57660.06083.266223e113.266223e111.865347e106.45454600000.SH浦发银行2016-01-0815.464415.667515.791214.934515.4467719182961262105060-0.0177-0.114217.54920.38553.262492e113.262492e111.865347e106.4471 66.绘制换手率的密度曲线 data[换手率(%)].plot(kind kde)​ 67.计算前一天与后一天收盘价的差值 方法一基于业务上的理解直接使用收盘价-前一天的收盘价 data[收盘价(元)] - data[前收盘价(元)]0 -0.4151 1 0.1413 2 0.1237 3 -0.5211 4 -0.0177... 322 -0.0800 323 -0.1000 324 -0.0600 325 -0.0600 326 -0.1000 Length: 309, dtype: float64方法二直接使用.diff() 计算 diff() 计算Series中的元素与同一个Series中另一个元素的差值默认为上一行中的元素。 # 计算Series中的元素与Series中另一个元素的差值默认为上一行中的元素。data[收盘价(元)].diff()0 NaN 1 0.1413 2 0.1237 3 -0.5211 4 -0.0177... 322 -0.0800 323 -0.1000 324 -0.0600 325 -0.0600 326 -0.1000 Name: 收盘价(元), Length: 309, dtype: float6468.计算前一天与后一天收盘价变化率 方法一根据业务知识计算变化率 (data[收盘价(元)] - data[前收盘价(元)]) / data[前收盘价(元)]0 -0.025726 1 0.008988 2 0.007799 3 -0.032598 4 -0.001145... 322 -0.005277 323 -0.006631 324 -0.004005 325 -0.004021 326 -0.006729 Length: 309, dtype: float64方法二直接使用pct_change() 计算 pct_change():这是对pandas Series对象的方法调用。 pct_change()方法计算当前元素与系列中前一个元素之间的变化百分比。默认情况下它计算紧跟前一个元素的变化百分比(lag1)。这通常用于时间序列分析以创建从一个时期到下一个时期的一系列百分比变化。 data[收盘价(元)].pct_change()0 NaN 1 0.008988 2 0.007799 3 -0.032598 4 -0.001145... 322 -0.005277 323 -0.006631 324 -0.004005 325 -0.004021 326 -0.006729 Name: 收盘价(元), Length: 309, dtype: float6469.设置日期为索引 data data.set_index(日期) data代码简称前收盘价(元)开盘价(元)最高价(元)最低价(元)收盘价(元)成交量(股)成交金额(元)涨跌(元)涨跌幅(%)均价(元)换手率(%)A股流通市值(元)总市值(元)A股流通股本(股)市盈率日期2016-01-04600000.SH浦发银行16.135616.144416.144415.499715.720542240610754425783-0.4151-2.572517.86020.22643.320318e113.320318e111.865347e106.56142016-01-05600000.SH浦发银行15.720515.464415.950115.367215.86185805479310341814740.14130.898917.81390.31123.350163e113.350163e111.865347e106.62042016-01-06600000.SH浦发银行15.861815.808816.020815.623415.9855467726538386673980.12360.779517.93070.25073.376278e113.376278e111.865347e106.67202016-01-07600000.SH浦发银行15.985515.720515.808815.367215.464411350479199502702-0.5211-3.259717.57660.06083.266223e113.266223e111.865347e106.45452016-01-08600000.SH浦发银行15.464415.667515.791214.934515.4467719182961262105060-0.0177-0.114217.54920.38553.262492e113.262492e111.865347e106.4471......................................................2017-05-03600000.SH浦发银行15.160015.160015.160015.050015.080014247943215130847-0.0800-0.527715.09910.06593.260037e113.260037e112.161828e106.13952017-05-04600000.SH浦发银行15.080015.070015.070014.900014.980019477788291839737-0.1000-0.663114.98320.09013.238418e113.238418e112.161828e106.09882017-05-05600000.SH浦发银行14.980014.950014.980014.520014.920040194577592160198-0.0600-0.400514.73230.18593.225447e113.225447e112.161828e106.07442017-05-08600000.SH浦发银行14.920014.780014.900014.510014.860043568576638781010-0.0600-0.402114.66150.20153.212476e113.212476e112.161828e106.05002017-05-09600000.SH浦发银行14.860014.690014.840014.660014.760019225492283864640-0.1000-0.672914.7650.08893.190858e113.190858e112.161828e106.0093 309 rows × 17 columns 70.以5个数据作为一个数据滑动窗口在这个5个数据上取均值(收盘价) .rolling(window5):这将创建数据的滚动视图窗口大小为5。这意味着对于数据中的每个点它考虑当前点和之前的四个点。 .mean():计算每个滚动窗口的平均值。 结果将是一个pandas series其中每个点是当天和前四个交易日的平均收盘价。请注意结果中的前四个点将是NaN(表示“Not a Number”)因为它们在滚动窗口中只有不到5个点。 data[收盘价(元)].rolling(window 5).mean()日期 2016-01-04 NaN 2016-01-05 NaN 2016-01-06 NaN 2016-01-07 NaN 2016-01-08 15.69578... 2017-05-03 15.14200 2017-05-04 15.12800 2017-05-05 15.07000 2017-05-08 15.00000 2017-05-09 14.92000 Name: 收盘价(元), Length: 309, dtype: float6471.以5个数据作为一个数据滑动窗口计算这五个数据总和(收盘价) data[收盘价(元)].rolling(window 5).sum()日期 2016-01-04 NaN 2016-01-05 NaN 2016-01-06 NaN 2016-01-07 NaN 2016-01-08 78.4789... 2017-05-03 75.7100 2017-05-04 75.6400 2017-05-05 75.3500 2017-05-08 75.0000 2017-05-09 74.6000 Name: 收盘价(元), Length: 309, dtype: float6472.将收盘价5日均线、20日均线与原始数据绘制在同一个图上 data[收盘价(元)].rolling(window 5).mean().plot() data[收盘价(元)].rolling(window 5).mean().plot() data[收盘价(元)].plot()​ 73.按周为采样规则取一周收盘价最大值 方法一使用滑动窗口以7天为采样 这种方法从实际效果上看确实可以取到每个滑动窗口的最大值由于滑动窗口的步长为1所以不具有业务意义 data[收盘价(元)].rolling(window 7).max()日期 2016-01-04 NaN 2016-01-05 NaN 2016-01-06 NaN 2016-01-07 NaN 2016-01-08 NaN... 2017-05-03 15.21 2017-05-04 15.21 2017-05-05 15.21 2017-05-08 15.21 2017-05-09 15.21 Name: 收盘价(元), Length: 309, dtype: float64方法二正解按周重采样 .resample(‘W’):按周重新采样数据。“W”代表“周”。此操作按周对数据进行分组。 .max():计算每周组的最大值。 结果是一个pandas Series其中每个点是相应周的最大收盘价。注意您需要确保DataFrame的索引是DatetimeIndex否则重新示例操作将无法工作。如果DataFrame的索引不是DatetimeIndex则可以使用pd.to_datetime()函数对其进行转换。 week_max data[收盘价(元)].resample(W).max() week_max日期 2016-01-10 15.9855 2016-01-17 15.8265 2016-01-24 15.6940 2016-01-31 15.0405 2016-02-07 16.2328... 2017-04-16 15.9700 2017-04-23 15.5600 2017-04-30 15.2100 2017-05-07 15.1600 2017-05-14 14.8600 Freq: W-SUN, Name: 收盘价(元), Length: 71, dtype: float64值得注意的是与方法一滑动窗口采样不同如果一个采样周内无数据还是可能出现空值。 去除空值的方法是使用函数 dropna() week_max[week_max.isnull()]日期 2016-02-14 NaN 2016-02-28 NaN 2016-03-06 NaN 2016-10-09 NaN Name: 收盘价(元), dtype: float64data[收盘价(元)].resample(W).max().dropna()日期 2016-01-10 15.9855 2016-01-17 15.8265 2016-01-24 15.6940 2016-01-31 15.0405 2016-02-07 16.2328... 2017-04-16 15.9700 2017-04-23 15.5600 2017-04-30 15.2100 2017-05-07 15.1600 2017-05-14 14.8600 Name: 收盘价(元), Length: 67, dtype: float64rolling() 和 ressample() 的区别与联系 pandas中的 rolling() 函数和 ressample() 函数的用途略有不同尽管它们都可以用于在时间窗口内聚合数据。 ’ rolling() 用于在一定大小的滚动窗口上应用函数。例如7天窗口的滚动平均值将计算数据中每7天周期的平均值。但是这将包括跨周(如周三至周二)的7天周期。 ’ resample() 用于将时间序列的频率更改为定义的频率然后在每个间隔上应用函数。例如重新采样到“W”频率并取最大值将计算数据中每个星期的最大值。 您可以使用’ rolling() 来计算7天的最大值如果您的数据从周一开始并且没有间隔则可能类似于每周最大值。但是如果数据中存在空白或者不是从周一开始则7天最大值将不对应于周最大值。 74.绘制重采样数据与原始数据 data[收盘价(元)].plot() data[收盘价(元)].resample(7D).max().plot()​ 75.将数据往后移动5天 data.shift(5)代码简称前收盘价(元)开盘价(元)最高价(元)最低价(元)收盘价(元)成交量(股)成交金额(元)涨跌(元)涨跌幅(%)均价(元)换手率(%)A股流通市值(元)总市值(元)A股流通股本(股)市盈率日期2016-01-04NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN2016-01-05NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN2016-01-06NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN2016-01-07NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN2016-01-08NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN......................................................2017-05-03600000.SH浦发银行15.0015.0215.1014.9915.05129759191952968620.050.333315.05070.063.253551e113.253551e112.161828e106.12732017-05-04600000.SH浦发银行15.0515.0615.1115.0015.05149398712250226680.000.000015.06190.06913.253551e113.253551e112.161828e106.12732017-05-05600000.SH浦发银行15.0515.0515.2515.0315.21228876453457915260.161.063115.10820.10593.288140e113.288140e112.161828e106.19252017-05-08600000.SH浦发银行15.2115.1515.2215.0815.21157185092384191610.000.000015.16810.07273.288140e113.288140e112.161828e106.19252017-05-09600000.SH浦发银行15.2115.2115.2215.1315.1612607509191225527-0.05-0.328715.16760.05833.277331e113.277331e112.161828e106.1721 309 rows × 17 columns 76.将数据向前移动5天 data.shift(-5)代码简称前收盘价(元)开盘价(元)最高价(元)最低价(元)收盘价(元)成交量(股)成交金额(元)涨跌(元)涨跌幅(%)均价(元)换手率(%)A股流通市值(元)总市值(元)A股流通股本(股)市盈率日期2016-01-04600000.SH浦发银行15.446715.199415.411414.978615.0581901771351550155933-0.3886-2.515717.19010.48343.180417e113.180417e111.865347e106.28492016-01-05600000.SH浦发银行15.058115.164115.473215.084615.4114553744549640615020.35332.346017.40990.29693.255031e113.255031e111.865347e106.43242016-01-06600000.SH浦发银行15.411415.517415.808815.323115.358447869312843717365-0.0530-0.343817.62540.25663.243839e113.243839e111.865347e106.41022016-01-07600000.SH浦发银行15.358415.014015.888314.916815.8265548388339661178480.46813.047717.61740.2943.342702e113.342702e111.865347e106.60562016-01-08600000.SH浦发银行15.826515.720516.029615.473215.526246723139836146426-0.3003-1.897317.89580.25053.279280e113.279280e111.865347e106.4803......................................................2017-05-03NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN2017-05-04NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN2017-05-05NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN2017-05-08NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN2017-05-09NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN 309 rows × 17 columns 77.使用expending函数计算开盘价的移动窗口均值 .expanding() :在你的数据上创建一个扩展窗口。展开窗口从数据的开头开始并包含截至当前点的所有数据。 .mean():计算每个窗口的平均值。 结果是一个pandas Series其中每个点是截至并包括当天的所有天的平均开盘价。这意味着第一个点将是第一天的开盘价第二个点将是前两天的平均开盘价第三个点将是前三天的平均开盘价以此类推。 data[收盘价(元)].expanding().mean()日期 2016-01-04 15.720500 2016-01-05 15.791150 2016-01-06 15.855933 2016-01-07 15.758050 2016-01-08 15.695780... 2017-05-03 16.047382 2017-05-04 16.043894 2017-05-05 16.040233 2017-05-08 16.036401 2017-05-09 16.032271 Name: 收盘价(元), Length: 309, dtype: float6478.绘制上一题的移动均值与原始数据折线图 data[收盘价(元)].expanding().mean().plot() data[收盘价(元)].plot()79.计算布林指标 Bollinger Band (BBands)是一种流行的金融技术分析工具由John Bollinger在20世纪80年代提出。Bollinger带包括一个作为n周期简单移动平均线(SMA)的中间带一个在中间带之上的K倍n周期标准差处的上带以及一个在中间带之下的K倍n周期标准差处的下带。参数N和K通常分别为20和2。 布林指数(Bollinger Band Index简称Brin Index)是一个衡量股票价格是高还是低的指标。计算公式如下: $ Brin Index \frac{Price - Lower Band}{Upper Band - Lower Band} $ 其中: Price为当前价格Lower Band 是指较低的Bollinger波段Upper Band 是指较高的Bollinger波段。 布林指数的取值范围为0 1。当布林指数接近0时表明该股票的价格接近其低位区间。当它接近1时它表明股票正在其范围的高端交易。 请注意您需要有历史价格数据来计算Bollinger波段的移动平均线和标准差。 下面是用熊猫计算布林指数的方法: # 计算移动平均数和标准偏差 data[MA] data[收盘价(元)].rolling(window 20).mean() data[SD] data[收盘价(元)].rolling(window 20).std() # 计算上布林带和下布林带 data[UpperBB] data[MA] (data[SD] * 2) data[LowerBB] data[MA] - (data[SD] * 2) # 计算布林指数 data[Brin] (data[收盘价(元)] - data[LowerBB]) / (data[UpperBB] - data[LowerBB])80.计算布林线并绘制 plt.figure(figsize (12,6)) # 设置图形的大小 data[Brin].plot(grid True) # 实际创建了图形 plt.title(Brin Index) # 为图形添加了标题 plt.show() # 显示图形​ ​
http://www.sczhlp.com/news/189704/

相关文章:

  • 求做网站的克拉玛依住房和建设局网站
  • 网站开发公司是干嘛的用cms做的网站 的步骤
  • 优秀网站建设出售南宁国贸网站建设
  • premium wordpress plugins西宁网站seo
  • wordpress主题购买友链对网站seo有帮助吗
  • 旅游网站开发流程手游超变传奇网站发布网
  • 公司网站建设属于无形资产吗桂林网络科技
  • 精品个人网站源码下载常州 网站 推广
  • wordpress删除登录seo外链友情链接
  • 顺德做网站公司哪家好苏州公司官网
  • 可以自己买个服务器做网站吗php网站开发实用技术答案
  • 防抖与节流
  • 10月——算法竞赛回坑杂记
  • 大数据概述
  • Hadoop--HDFS-HA高可用
  • Hadoop--HDFS
  • 网站域名域名备案网站建设
  • 高端网站建设的图片2016企业网站建设合同
  • 创建一个网站的英文做网站应该用多少分辨率
  • 设计网站作品适合大学生做的网站
  • 哪些网站可以做调查赚钱app制作教程视频全
  • 杭州论坛网站建设商务网站建设的一般流程
  • 湘潭网站建设 很好磐石网络推文最好的网站是哪个
  • 一个虚拟空间做两个网站国外自建站怎么样
  • 郑州+高端网站建设wordpress不用ftp
  • 怎样做旅游视频网站seo网站优化推广怎么做
  • 局机关门户网站建设情况汇报网站建设初级教程
  • 河北保定建设集团招聘信息网站优秀的吉祥物设计网站
  • 20232308 2025-2026-1 《网络与系统攻防技术》实验一实验报告
  • Redis知识点汇总