• 技术文章 >后端开发 >Python教程

    Python数据分析实战之 概述数据分析

    coldplay.xixicoldplay.xixi2021-01-06 09:58:53转载502
    Python教程栏目介绍概述数据。

    推荐(免费):Python教程

    文章目录

    一、入门数据分析

    1.大数据时代的基本面

    大数据产业发展现状:
    现在数据已经呈现出了爆炸式的增长,每一分钟可能就会有:

    在大数据时代,出现了三大变革:

    举一个典型的例子:
    男士到超市买尿布会顺带买一些啤酒,通过大数据分析出的结果促使超市在尿布的货架附近放一些啤酒,从而增大销量,买尿布与买啤酒之间没有因果关系,但是存在着某种相关关系。

    国内大数据应用状况如下(来自CSDN):
    国内大数据使用状况

    可以看到,大数据的应用已经具有一定规模,但是还有很大的发展空间。

    人才方面的需求主要包括:

    之所以要学习数据分析,是因为数据正变得越来越常见和廉价,分析可以为数据提供稀缺且附带额外价值的服务。

    2.数据分析师职业前景

    数据分析师需要解决的问题:

    一名好的数据分析师是一个好的产品规划者和行业的领跑者
    在IT企业,优秀的数据分析师很有希望成为公司的高层。

    数据分析师的工作流程如下:
    数据工程师工作流程

    数据分析师的三大任务:

    数据分析师要求的8项技能:

    数据分析师要求的三大能力:

    典型的数据分析师的成长历程:
    数据分析师成长历程

    3.成为数据分析师之路

    成为数据分析师的自我修养:

    数据分析师需要具备的技能如下:

    在不同行业数据分析从业人员的工作内容和职责:

    数据分析很重要的学科基础是数学,但是数学不好也没有关系,可以用Python来帮助学习:
    Python不仅是一门编程语言,而且是数据挖掘机器学习等技术的基础,方便建立自动化的工作流;
    Python入门不难,它对数学要求并不是太高,重要的是需要知道如何用语言表达一个算法逻辑;
    Python有很多封装好的工具库和命令,需要做的是用哪些数学方法解决一个问题,并构建出来。

    要想快速入门Python数据分析,就要使用好Python相关的工具包:
    (1)Python最大的特点是拥有一个巨大而活跃的科学计算社区,采用python进行科学计算的趋势也越来越明显。
    (2)由于Python有不断改良的库,使其成为数据处理任务的一大代替方案,结合其在通用编程方面的强大实力,完全可以只是用Python这一种语言去构建以数据为中心的应用程序,其中:

    (3)作为一个科学计算平台,Python的能够轻松集成C、C++以及Fortran代码。

    数据分析的准备工作:

    数据分析与数据挖掘的常用算法:

    学习和从事数据分析工作的方法为:

    二、Python的安装与环境配置

    1.Python版本

    Python分为3.X和2.X两个大版本。
    Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。
    为了不带入过多的累赘,Python 3.X在设计的时候没有考虑向下相容,许多针对早期Python版本设计的程式都无法在Python 3.X上正常执行。
    大多数第三方库都正在努力地相容Python 3.X版本。

    2.不同系统安装Python

    (1)Unix & Linux系统

    (2)Window系统

    (3)Mac系统
    自带python 2.7,可以执行brew install python安装新版本。

    3.环境变量配置

    Windows系统需要配置环境变量。

    如果在安装Python时没有选择添加环境变量,则需要手动添加,需要将安装Python的路径XXX\PythonXXXXXX\PythonXXX\Scripts添加到环境变量,有两种方式:

    最后依次点击确认退出即可。

    4.安装pip

    pip是Python中的包安装和管理工具,在安装Python时可以选择安装pip,在Python 2 >=2.7.9或Python 3 >=3.4中自带。

    如果没有安装pip,可以通过命令安装:

    5.集成开发环境选择

    Python有很多编辑器,包括PyCharm等,这里选择PyCharm:
    PyCharm是由JetBrains打造的一款Python IDE,支Mac OS、Windows、Linux系统。
    包含调试、语法高亮、Project管理、代码跳转智能提示、自动完成、单元测试、版本控制等功能。

    可以在https://www.jetbrains.com/pycharm/download/选择合适的版本进行下载安装即可。

    三、Anaconda的介绍与安装

    1.Anaconda是什么

    Anaconda是一个可用于科学计算的Python发行版,支持Linux、Mac、Windows系统,内置了常用的科学计算库。
    它解决了官方Python的两大痛点:
    (1)提供了包管理功能,Windows平台安装第三方包经常失败的场景得以解决;
    (2)提供环境管理的功能,功能类似virtualenv,解决了多版本Python并存、切换的问题 。

    2.下载和安装Anaconda

    直接在官网https://www.anaconda.com/products/inpidual下载安装包,选择下载Python3.8的安装包个人版即可,但是官网下载速度较慢,因此我已经将Python3.8对应的Anaconda安装包下载整理好了,可以直接点击加QQ群 Python极客部落963624318 在群文件夹Python相关安装包中下载即可。

    下载完成后直接安装,需要注意,在点击过程中会出现添加环境变量的提示,需要勾选,如下:
    安装Anaconda 选择环境变量

    最后依次点击下一步、安装完成后,点击Win键(Windows系统下)可以看到最近添加或应用列表A下如图:
    启动栏 最近添加
    启动栏 A

    此时可点击Anaconda Navigator,如下所示:
    Anaconda Navigator

    可以看到环境为Python 3.8.3,Anaconda创建的基础环境名为base,也是默认环境,也可以看到默认安装的库。

    再打开Anaconda命令行工具Anaconda Powershell Prompt,输入python -V,也打印Python 3.8.3

    还可以通过命令创建新的conda环境,如conda create --name py27 python=2.7执行后即创建了一个名为py27的Python版本为2.7的conda环境。

    激活环境执行命令conda activate py27,停用使用命令conda deactivate

    可以在命令行中执行conda list查看已经安装的库,如下:

    # packages in environment at E:\Anaconda3:
    #
    # Name                    Version                   Build  Channel
    _ipyw_jlab_nb_ext_conf    0.1.0                    py38_0
    alabaster                 0.7.12                     py_0
    anaconda                  2020.07                  py38_0
    anaconda-client           1.7.2                    py38_0
    anaconda-navigator        1.9.12                   py38_0
    ...
    zlib                      1.2.11               h62dcd97_4
    zope                      1.0                      py38_1
    zope.event                4.4                      py38_0
    zope.interface            4.7.1            py38he774522_0
    zstd                      1.4.5                ha9fde0e_0

    3.conda工具的介绍和包管理

    conda是Anaconda下用于包管理环境管理的工具,功能上类似pip和virtualenv的组合,conda的环境管理与virtualenv是基本上是类似的操作。
    安装成功后conda会默认加入到环境变量中,因此可直接在命令行窗口运行conda命令。

    常见的conda命令和含义如下:

    命令含义conda命令
    conda –h查看帮助
    基于python3.6版本创建名为python36的环境conda create --name python36 python=3.6
    激活此环境activate python36(Windows)、source activate python36(linux/mac)
    查看python版本python -V
    退出当前环境deactivate python36
    删除环境conda remove -n py27 --all
    查看所有安装的环境conda info -e

    conda的包管理常见命令如下:

    包管理命令意义包管理命令
    安装matplotlibconda install matplotlib
    查看已安装的包conda list
    包更新conda update matplotlib
    删除包conda remove matplotlib

    在conda中,anything is a package一切皆是包,conda本身可以看作是一个包,python环境可以看作是一个包,anaconda也可以看作是一个包,因此除了普通的第三方包支持更新之外,这3个包也支持如下命令:

    操作命令
    更新conda本身conda update conda
    更新anaconda应用conda update anaconda
    更新python,假设当前python环境是3.8.1,而最新版本是3.8.2,那么就会升级到3.8.2conda update python

    四、Jupyter Notebook

    1.Jupyter Notebook基本介绍

    Jupyter Notebook(此前被称为IPython notebook)是一个交互式笔记本,支持运行40多种编程语言。

    在开始使用notebook之前,需要先安装该库:
    (1)在命令行中执行pip install jupyter来安装;
    (2)安装Anaconda后自带Jupyter Notebook。

    在命令行中执行jupyter notebook,就会在当前目录下启动Jupyter服务并使用默认浏览器打开页面,还可以复制链接到其他浏览器中打开,如下:
    jupyter 界面

    可以看到,notebook界面由以下部分组成:
    (1)notebook名称;
    (2)主工具栏,提供了保存、导出、重载notebook,以及重启内核等选项;
    (3)notebook主要区域,包含了notebook的内容编辑区。

    2.Jupyter Notebook的使用

    在Jupyter页面下方的主要区域,由被称为单元格的部分组成。每个notebook由多个单元格构成,而每个单元格又可以有不同的用途。
    上图中看到的是一个代码单元格(code cell),以[ ]开头,在这种类型的单元格中,可以输入任意代码并执行。
    例如,输入1 + 2并按下Shift + Enter,单元格中的代码就会被计算,光标也会被移动到一个新的单元格中。

    如果想新建一个notebook,只需要点击New,选择希望启动的notebook类型即可。

    简单使用示意如下:
    python da jupyter simple

    可以看到,notebook可以修改之前的单元格,对其重新计算,这样就可以更新整个文档了。如果你不想重新运行整个脚本,只想用不同的参数测试某个程式的话,这个特性显得尤其强大。
    不过,也可以重新计算整个notebook,只要点击Cell -> Run all即可。

    再测试标题和其他代码如下:
    python da jupyter for head

    可以看到,在顶部添加了一个notebook的标题,还可以执行for循环等语句。

    3.Jupyter中使用Python

    Jupyter测试Python变量和数据类型如下:
    python da jupyter variable data type

    测试Python函数如下:
    python da jupyter function

    测试Python模块如下:
    python da jupyter module package

    可以看到,在执行出错时,也会抛出异常。

    测试数据读写如下:
    python da jupyter data io

    数据读写很重要,因为进行数据分析时必须先读取数据,进行数据处理后也要进行保存

    4.数据交互案例

    加载csv数据,处理数据,保存到MongoDB数据库

    有csv文件shopproducts.csv和userratings.csv,分别是商品数据和用户评分数据,如下:
    shopproducts
    userratings

    如需获取数据、代码等相关文件进行测试学习,可以直接点击加QQ群 Python极客部落963624318 在群文件夹Python数据分析实战中下载即可。

    现在需要通过Python将其读取出来,并将指定的字段保存到MongoDB中,需要在Anaconda中执行命令conda install pymongo安装pymongo。

    Python代码如下:

    import pymongoclass Product:
        def __init__(self,productId:int ,name, imageUrl, categories, tags):
            self.productId = productId
            self.name = name
            self.imageUrl = imageUrl
            self.categories = categories
            self.tags = tags    def __str__(self) -> str:
            return self.productId +'^' + self.name +'^' + self.imageUrl +'^' + self.categories +'^' + self.tagsclass Rating:
        def __init__(self, userId:int, productId:int, score:float, timestamp:int):
            self.userId = userId
            self.productId = productId
            self.score = score
            self.timestamp = timestamp    def __str__(self) -> str:
            return self.userId +'^' + self.productId +'^' + self.score +'^' + self.timestampif __name__ == '__main__':
        myclient = pymongo.MongoClient("mongodb://127.0.0.1:27017/")
        mydb = myclient["goods-users"]
        # val attr = item.split("\\^")
        # // 转换成Product
        # Product(attr(0).toInt, attr(1).trim, attr(4).trim, attr(5).trim, attr(6).trim)
    
        shopproducts = mydb['shopproducts']
        with open('shopproducts.csv', 'r',encoding='UTF-8') as f:
            item = f.readline()
            while item:
                attr = item.split('^')
                product = Product(int(attr[0]), attr[1].strip(), attr[4].strip(), attr[5].strip(), attr[6].strip())
                shopproducts.insert_one(product.__dict__)
                # print(product)
                # print(json.dumps(obj=product.__dict__,ensure_ascii=False))
                item = f.readline()
    
        # val attr = item.split(",")
        # Rating(attr(0).toInt, attr(1).toInt, attr(2).toDouble, attr(3).toInt)
        userratings = mydb['userratings']
        with open('userratings.csv', 'r',encoding='UTF-8') as f:
            item = f.readline()
            while item:
                attr = item.split(',')
                rating = Rating(int(attr[0]), int(attr[1].strip()), float(attr[2].strip()), int(attr[3].strip()))
                userratings.insert_one(rating.__dict__)
                # print(rating)
                item = f.readline()

    在启动MongoDB服务后,运行Python代码,运行完成后,再通过Robo 3T查看数据库如下:
    robo 3T

    显然,保存数据成功。

    使用Jupyter处理商铺数据

    待处理的数据是商铺数据,如下:
    shop data

    包括名称、评论数、价格、地址、评分列表等,其中评论数、价格和评分均不规则、需要进行数据清洗。

    如需获取数据、代码等相关文件进行测试学习,可以直接点击加QQ群 Python极客部落963624318 在群文件夹Python数据分析实战中下载即可。

    Jupyter中处理如下:
    python da jupyter shop data

    可以看到,最后得到了经过清洗后的规则数据。

    完整Python代码如下:

    # 数据读取f = open('商铺数据.csv', 'r', encoding='utf8')for i in f.readlines()[1:15]:
        print(i.split(','))# 创建comment、price、commentlist清洗函数def fcomment(s):
        '''comment清洗函数:用空格分段,选取结果list的第一个为点评数,并且转化为整型'''
        if '条' in s:
            return int(s.split(' ')[0])
        else:
            return '缺失数据'def fprice(s):
        '''price清洗函数:用¥分段,选取结果list的最后一个为人均价格,并且转化为浮点型'''
        if '¥' in s:
            return float(s.split('¥')[-1])
        else:
            return '缺失数据'def fcommentl(s):
        '''commentlist清洗函数:用空格分段,分别清洗出质量、环境及服务数据,并转化为浮点型'''
        if ' ' in s:
            quality = float(s.split('                                ')[0][2:])
            environment = float(s.split('                                ')[1][2:])
            service = float(s.split('                                ')[2][2:-1])
            return [quality, environment, service]
        else:
            return '缺失数据'# 数据处理清洗datalist = []  # 创建空列表f.seek(0)n = 0  # 创建计数变量for i in f.readlines():
        data = i.split(',')
        # print(data)
        classify = data[0]  # 提取分类
        name = data[1]  # 提取店铺名称
        comment_count = fcomment(data[2])  # 提取评论数量
        star = data[3]  # 提取星级
        price = fprice(data[4])  # 提取人均
        address = data[5]  # 提取地址
        quality = fcommentl(data[6])[0]  # 提取质量评分
        env = fcommentl(data[6])[1]  # 提取环境评分
        service = fcommentl(data[6])[2]  # 提取服务评分
        if '缺失数据' not in [comment_count, price, quality]:  # 用于判断是否有数据缺失
            n += 1
            data_re = [['classify', classify],
                       ['name', name],
                       ['comment_count', comment_count],
                       ['star', star],
                       ['price', price],
                       ['address', address],
                       ['quality', quality],
                       ['environment', env],
                       ['service', service]]
            datalist.append(dict(data_re))  # 字典生成,并存入列表datalist
            print('成功加载%i条数据' % n)
        else:
            continueprint(datalist)print('总共加载%i条数据' % n)f.close()

    更多编程相关知识,请访问:编程教学!!

    以上就是Python数据分析实战之 概述数据分析的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:csdn,如有侵犯,请联系admin@php.cn删除
    专题推荐:Python 数据分析
    上一篇:python图片转字符画代码是什么 下一篇:看看 Python Django开发 异常及解决办法
    大前端线上培训班

    相关文章推荐

    • 介绍Python学习有了列表,为什么还有元组?• Python基础 装饰器及练习• 洞悉 Python基础概况• python socket 完成简单的通信• Python介绍嵌套 JSON 秒变 Dataframe!• 传授 每30秒学会一个Python小技巧

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网