当前位置 主页 > 网站技术 > 代码类 >

    Python数据分析pandas模块用法实例详解

    栏目:代码类 时间:2019-11-20 15:06

    本文实例讲述了Python数据分析pandas模块用法。分享给大家供大家参考,具体如下:

    pandas

    pandas10分钟入门,可以查看官网:10 minutes to pandas

    也可以查看更复杂的cookbook

    pandas是非常强大的数据分析包,pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包。就好比 Numpy的核心是 ndarray,pandas 围绕着 Series 和 DataFrame 两个核心数据结构展开 。Series和DataFrame 分别对应于一维的序列和二维表结构。

    创建对象

    常规导入方式:

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    

    Series

    Series 可以看做一个定长的有序字典,它是能够保存任何数据类型(整数,字符串,浮点数,Python对象等)的一维标记数组。 Series对象包含两个主要的属性:index 和 values。 数据可以是Python字典、 ndarray、scalar value标量值(如5)等 创建时有没有index都会设置默认下标,但是索引用的是数组时会默认使用创建时的索引 创建时还可以指定name名字属性,之后可以修改 rename
    ser1 = pd.Series(range(10,15),index=list('ABCDE'))
    print(ser1)
    # 下标和索引等同
    print(ser1['A'])
    print(ser1[0])
    
    

    输出:

    A    10
    B    11
    C    12
    D    13
    E    14
    dtype: int64
    10
    10

    取连续多个数据时,下标取值不包含结束位置,索引切片包括结束位置

    print(ser1['A':'D'])
    print(ser1[0:3])
    
    

    输出:

    A    10
    B    11
    C    12
    D    13
    dtype: int64
    A    10
    B    11
    C    12
    dtype: int64

    取多个数据、条件筛选(布尔索引)

    # 注意里面是一个列表
    print(ser1[[0,1,3]])
    # 布尔索引
    print(ser1[(ser1>12)&(ser1<15)])
    
    

    DataFrame

    DataFrame是二维标记数据结构。 您可以将其视为电子表格或SQL表,或Series对象。 它通常是最常用的pandans对象。 像Series一样,DataFrame接受许多不同种类的输入:

    Dict of 1D ndarrays, lists, dicts, or Series 2-D numpy.ndarray Structured or record ndarray A Series Another DataFrame
    df1 = pd.DataFrame(np.random.randint(10,50,(3,4)), - index=list('ABC'),columns=list('abcd'))
    index是行索引,colums是列索引 用字典创建时,键名就是列索引,而且键值可以为列表,会自动补齐

    取单行或单列数据,取单个数据

    # 列取值,取出的是一个series对象
    print(df1['a'])
    print(df1['a'].values)
    # 取出一行数据的某一行数据,也就是单个数据
    print(df1['a']['B']) # 这两个一样
    print(df1['a'][1])
    
    

    取不连续多列,取连续多列(默认不支持连续,需要高级索引)

    # 取不连续多列
    print(df1[['a','c']])
    
    

    行索引,可以直接切片,但是默认不能不连续多行取值,下标同理

    print('行索引取值##############')
    print(df1['A':'A'])
    # 取连续多行就是df1['A':'C']
    
    

    高级索引(花式索引)

    一般情况用于DataFrame,这里直接略过Series