• Python数据分析


          数据分析主要使用一些工具对一堆数据做处理,然后整理成相关图表,最后得出分析结论。数据分析工具很多,比如:Excel、python、还有一些商业BI工具等。Excel操作简单,可视化操作。如果处理的数量比较大时,处理起来就很麻烦,加载很慢。本次我们简单介绍些Python在数据分析方面的应用。

           Python是一门动态脚本语言,语法简单,入门快。这门语言的应用很广泛,在最近几年开发语言排行榜靠前,仅次于Java、C。用途很广泛,比如:Web开发、数据分析、桌面应用、机器学习等

    1. 运行Python

    大部分系统自带了Python解释器(windows需要额外安装)。运行Python代码有两种方式:控制台和文件方式

    第1种:打开控制台 → 敲入python → print("hello")

    第2种:将python代码写入文件中,比如:demo.py,然后运行 python demo.py即可。

    2. 基础介绍

    2.1 变量

    a = "hello"
    b = 100
    c = True

    2.2 列表

    list = [1,2,3]
    names = ["xiaoming", "zhangsan", "lisi"]
    list[:]
    list[1:2]

    2.3 字典

    dict = {"name":"xiaoming", "age":100}
    dcit['name']

    2.4 函数 

    # 函数定义
    def getName():
        return "hello"
    
    
    # 函数调用
    getName()

    2.5 模块

    # 导入模块
    import os
    import sys

    3. Pandas库介绍

    pandas是基于numpy封装的科学计算库,提供很多函数用于数据分析、处理。

    3.1 Dataframe

    是一个二维数组,类似一张表格,有表头字段,列索引字段

    4. 数据分析流程

    4.1 数据采集

    数据采集可以直接读取文件、数据库或者爬虫等,这里我们主要读取文件中的数据

    import pandas as pd
    pd.read_csv()   # 读取csv、tsv格式文件
    pd.read_excel()    # 读取excel
    pd.read_table() # 读取txt文本
    pd.read_sql()    # 从数据库读取


    举例

    In [184]: df = pd.read_csv('student.csv')
    In [185]: df
    Out[185]:
       id       name  age  gender
    0   1      xiamo   20    male
    1   2    xiaohua   20  female
    2   3  xiaoqiang   25    male
    3   4     xiaoli   22  female
    4   5    xiaohua   20  female

    4.2 数据预处理 

    4.2.1 缺失值处理

    df.isnull() #检测空值

    df.fillna('') #填充空值

    df.isnull().any() #检测哪一列有空值

    df['age'].fillna(df['age'].mean(), inplace=True)

    df.dropna(how='all',inplace=True) #删除空行

    4.2.2 重复值处理

    df.drop(index=0)

    df.drop_duplicates() #去除重复行

    4.2.3 类型转换

    df['name'].str.lower()  #转小写

    df['name'].str.upper() # 转大写

    df['name'].str.strip() #去掉指定字符

    df['age'].astype(np.int64)

    4.3 数据计算

    4.3.1 统计数量

    In [89]: df1.sum()
    Out[89]:
    A     9
    B    12
    C    15
    dtype: int64

    4.3.2 计算平均值

    In [90]: df1.mean()
    Out[90]:
    A    3.0
    B    4.0
    C    5.0
    dtype: float64

    4.3.3 最大值、最小值、中间值

    In [96]: df1.describe()
    Out[
    96]: A B C count 3.0 3.0 3.0 mean 3.0 4.0 5.0 std 3.0 3.0 3.0 min 0.0 1.0 2.0 25% 1.5 2.5 3.5 50% 3.0 4.0 5.0 75% 4.5 5.5 6.5 max 6.0 7.0 8.0

    4.4 数据导出 

    import pandas as pd
    pd.to_csv()
    pd.to_excel()
    pd.to_table()

    4.5 数据可视化

    将数据用图表展示出来,直观,要安装一些第三方库,比如:


    matplotlib
    seaborn

    将数据展示为折线图、饼图、散点图等等

     

    5 案例分析

    5.1 读取文件

    import pandas as pd

    In [277]: df = pd.read_csv('student.csv')

    In [278]: df
    Out[278]:
    id name age gender
    0 1 xiamo NaN male
    1 2 xiaohua 20.0 female
    2 3 xiaoqiang NaN Male
    3 4 xiaoli 22.0 female
    4 5 xiaohua 20.0 Female
    5 5 xiaohua 20.0 female

    5.2 数据处理

    df.fillna(0)  # 空值默认为0

    df['gender'] = df['gender'].str.lower()  # 性别转为小写

    df.drop_duplicates() #去掉重复行

    In [284]: df.drop_duplicates()
    Out[284]:
    id name age gender
    0 1 xiamo 0.0 male
    1 2 xiaohua 20.0 female
    2 3 xiaoqiang 0.0 male
    3 4 xiaoli 22.0 female
    4 5 xiaohua 20.0 female

    5.3 数据统计

    统计男女性别人数

    In [285]: df.groupby('gender').count()
    Out[285]:
    id name age
    gender
    female 4 4 4
    male 2 2 2

    5.4 数据导出

    df2.to_csv('result.csv')

    5.5 数据可视化

    饼图展示统计结果

     df3 = df2.reset_index()

    plt.pie(x=df3['age'], labels=df3['gender'])

    6.参考

    http://pandas.apachecn.org/

    https://pandas.pydata.org/pandas-docs/stable/reference/index.html#api

    http://www.360doc.com/content/19/0124/18/7669533_811054697.shtml

     
  • 相关阅读:
    Educational Codeforces Round 104 (Rated for Div. 2) A B C D E
    Codeforces Round #701 (Div. 2) A B C D
    Codeforces Round #700 (Div. 2) A B C D1
    记录一次Boot整合Batch框架无法连接达梦数据库的问题
    关于Java中的volatile关键字的总结,适合了解不太多的人
    写个日志切面追踪,可以更直接查看项目执行的各种信息打印。
    sqlServer实现group by 之后 聚合操作之拼接结果
    SQL CURSOR 游标
    SQL case when
    Redis版本
  • 原文地址:https://www.cnblogs.com/xiaodekaixin/p/12707581.html
Copyright © 2020-2023  润新知