数据预处理实验5

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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表时,一直报错,报错的大概意思就是表里的格式不对之类的,然后百度了很多办法,都没

相关文档
最新文档