一.数据分析的步骤:
1.查看数据并提出问题
2.数据清洗
3.代码编写,提取出结果数据,并分析是否有异常数据,修改代码
4.根据数据选择合适的图表进行展示
5.根据图表小组讨论交流获得最终的结果
二.环境与原始数据准备
安装Anaconda2版本,同时更新软件包更新最新版本 conda upgrade --all
下载first.zip文件,解压
里面有3张csv文件分别是enrollments.csv,daily_engagements.csv,project_submission.csv和一个ipython的notebook
启动cmd 切换到解压之后的文件 输入 jupyter notebook 启动ipython笔记本
三.分析数据
1.从csv加载数据
1 2 3 4 5 6 7 8 |
import unicodecsv def readcsv(filename): with open (filename, 'rb' ) as f: #以字典的形式存放每一行数据 reader = unicodecsv.DictReader(f) return list (reader) |
1 2 3 4 5 6 7 8 9 10 |
## 从 daily_engagement.csv 和 project_submissions.csv 载入数据并存 ## 储至下面的变量中,然后检查每张表的第1行。 daily_engagement = readcsv( 'daily-engagement.csv' ) project_submissions = readcsv( 'project-submissions.csv' ) enrollments = readcsv( 'enrollments.csv' ) print daily_engagement[ 0 ] print project_submissions[ 0 ] print enrollments[ 0 ] |
2.修正数据类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
from datetime import datetime as dt # 将字符串格式的时间转为 Python datetime 类型的时间。 # 如果没有时间字符串传入,返回 None def parse_date(date): if date = = '': return None else : return dt.strptime(date, '%Y-%m-%d' ) # 将可能是空字符串或字符串类型的数据转为 整型 或 None。 def parse_maybe_int(i): if i = = '': return None else : return int (i) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# 清理 enrollments 表格中的数据类型(取消的日期,参加日期,退出的天数,是否取消,是否是Udacity测试账号) for enrollment in enrollments: enrollment[ 'cancel_date' ] = parse_date(enrollment[ 'cancel_date' ]) enrollment[ 'join_date' ] = parse_date(enrollment[ 'join_date' ]) enrollment[ 'days_to_cancel' ] = parse_maybe_int(enrollment[ 'days_to_cancel' ]) enrollment[ 'is_canceled' ] = enrollment[ 'is_canceled' ] = = 'True' enrollment[ 'is_udacity' ] = enrollment[ 'is_udacity' ] = = 'True' enrollments[ 0 ] # 清理 engagement 的数据类型(时间,课程数量,课程完成数量,项目完成情况,共花费多少时间) for engagement_record in daily_engagement: engagement_record[ 'utc_date' ] = parse_date(engagement_record[ 'utc_date' ]) engagement_record[ 'num_courses_visited' ] = int ( float (engagement_record[ 'num_courses_visited' ])) engagement_record[ 'lessons_completed' ] = i
|