Python数据分析流程

本文详细介绍了Python进行数据分析的整个流程,包括查看数据、数据清洗、代码编写、异常处理、信息可视化等关键步骤。文章中使用了Anaconda环境,处理了csv文件中的数据,通过jupyter notebook进行分析,并绘制了直方图以辅助讨论和决策。重点探讨了如何识别和处理异常数据,以及如何从数据中提取有价值的信息。
摘要由CSDN通过智能技术生成

一.数据分析的步骤:

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 == '':

        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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值