数据预处理实验5
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆交通大学信息科学与工程学院
实验报告
班级:曙光1701班
姓名学号:
实验项目名称:透视表编程、股票协方差相关系数实验项目性质:验证性、设计性
实验所属课程:《数据导入与预处理》实验室(中心):语音楼八楼
指导教师:
实验完成时间: 2019 年 11 月 23 日
一、实验目的
了解和掌握透视表进行数据预处理方法。
了解和掌握协方差和相关系数的计算。
二、实验要求
1.使用python的pandas进行操作。
2.涉及知识包括:1.数据框的增删查改;
2.批量读取数据;
3.变量类型的转换;
4.数据框的重塑与合并;
5.生成数据透视表。
3.提交模块化的实验程序源代码,给出实验结果。
4.简述程序的测试过程,提交实录的输入、输出文件;
三、实验步骤示例(仅供参考)
(1).flu_data数据集
①读取flu_data2015年的数据,并展示查看数据查看其格式
代码如下:
import pandas as pd
import numpy as np
import os
import re
os.chdir('C:/Users/11494/Desktop/4flu_data/flu_data')
data0=pd.read_csv("by_year/2015.csv",encoding="gbk")
data0.head()
data0.tail()
②对2015年的数据进行预处理。
代码如下):
data0.drop("Unnamed: 0",axis=1,inplace=True)
col_name=data0.iloc[1]
data0.columns=col_name
data0.drop([0,1,len(data0)-1],axis=0,inplace=True) data0.head(
③批量读取连接数据
④定义函数用于批量读取及拼接数据,并在读取过程中使用上述Preprogress 的函数进行预处理。
⑤重塑other_data的列名,使其dat一致,使用0对缺失值进行填补。
⑥处理数据中存在空格;黑龙江中“黑龙江”和“黑龙江省”两种表现形式;在人口数据中没有建设兵团这一类型,删除这一类型所在的行。
⑦对人口数据进入读取和处理。
⑧数据的列名位于第2行,前3行和后两行均是需要剔除的多余数据,通过先前使用过的方法对数据进行处理。
⑨选择统一对人口数据去掉“自治区”三个字进行处理,为了方便数据的填充,我们需要对人口数据数据进行重塑,以地区、年份、总人口数三个变量的形式进行表示,使宽数据变为长数据。
⑩对两个数据进行拼接,使用merge函数,按年份和地区对值进填充。
(2)MovieLens数据集①
②users
movies
Ratings
③将所有数据合并到一个表中。先用pandas的merge函数将ratings和users 合并到一起,然后再将movies也合并进去。
④过滤掉评分数据不够250条的电影,对title进行分组,得到size()对象
⑤利用python的切片语法,通过查看每个DataFrame的前几行即可验证数据加载工作是否顺利。
⑥将销售渠道的数据读入到数据帧中。
⑦建立索引。
⑧通过利用“values”域显式地定义我们关心的列,就可以实现移除那些不关心的列。
⑨用numpy中的函数mean和len来进行计数。
⑩将Nan替换为0。
将“Quantity”添加到“values”列表中,并查看总和
对选择的不同值执行不同的函数,向aggfunc传递一个字典。
提供一系列的聚合函数,并将它们应用到“values”中的每个元素上。
使用自定义的标准数据帧函数来对其进行过滤
利用TuShare计算各股票间的相关性和协方差#
先建立一个字典,用来存储股票对应的价格
import tushare as ts
from pandas import DataFrame
all_data = {}
#遍历list里面的股票,可以写入多个股票
for ticker in ['601398', '601939', '601857', '600028']:
#获取各股票某时段的价格
all_data[ticker] = ts.get_k_data(ticker, '2016-01-01', '2019-11-30') #用for循环遍历股票价格并转换为dataframe的形式
price = DataFrame({tic: data['close']
for tic, data in all_data.items()})
price
计算股票价格每日变化:
returns = price.pct_change()
Returns
计算相关性,代码如下:corr=returns.corr() Corr
计算协方差,代码如下:cov=returns.cov()
Cov
五、实验回顾
1、总结实验所用到的知识点;
(1)读取csv文件
(2)处理不规范的数据
(3)文件类型的转换
(4)协方差的求取
(5)相关系数的求取
2、总结实验过程中的调试技术。
总结:在调试中,遇到了很多错误,比如说有些时候单词打错,找了半天才找到;还有就是在用pandas读取csv表时,一直报错,报错的大概意思就是表里的格式不对之类的,然后百度了很多办法,都没