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

    Python使用Pandas库常见操作详解

    栏目:代码类 时间:2020-01-16 12:08

    本文实例讲述了Python使用Pandas库常见操作。分享给大家供大家参考,具体如下:

    1、概述

    Pandas 是Python的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。Pandas常用于处理带行列标签的矩阵数据、与 SQL 或 Excel 表类似的表格数据,应用于金融、统计、社会科学、工程等领域里的数据整理与清洗、数据分析与建模、数据可视化与制表等工作。

    数据类型:Pandas 不改变原始的输入数据,而是复制数据生成新的对象,有普通对象构成的一维数组成为Series,由Series构成的二维数组表称为DataFrame,其行被称为index,列为Colum。

    安装:如果使用anaconda集成环境则会自动安装numpy、scipy、pandas等数据科学包,也可以通过python包管理工具安装pandas:

    pip install pandas

    2、数据对象的创建

    通过Series()函数包裹一维数组可以创建Series对象,其中数组的元素可以是各种类型。

    通过DataFrame()函数包裹二维数组可以创建一个DataFrame对象,可以通过参数index、columns指定行标签和列标签。也可以通过python的字典类型初始化DataFrame,其键名默认为列标签

    import pandas as pd
    import numpy as np
     
    # 通过一维数组初始化Series
    s = pd.Series([1, 2.0, np.nan, 'test'])
    print(s)
     
    # 通过二维数组初始化DataFrame
    arr = np.random.randn(6, 4)
    arr_df = pd.DataFrame(arr, index=np.arange(1, 7), columns=list('ABCD'))
    print(arr_df)
    # 通过字典dict初始化DataFrame
    dic = {'A': 1.,
        'B': pd.Timestamp('20130102'),
        'C': pd.Series(1, index=list(range(4)), dtype='float32'),
        'D': np.array([3] * 4, dtype='int32'),
        'E': pd.Categorical(["test", "train", "test", "train"])
        }
    dic_df = pd.DataFrame(dic)
    print(dic_df)

    其运行结果如下:

    # Series数据
    0    1
    1    2
    2   NaN
    3  test
    dtype: object
    # 二维数组的DataFrame
         A     B     C     D
    1 -0.085417 -0.816502 1.495134 -0.277742
    2 1.657144 -0.203346 0.631930 -1.182239
    3 -2.303923 -0.535696 1.315379 0.129682
    4 0.133198 -0.239664 -2.004494 0.119965
    5 -1.454717 2.114255 -0.538678 -0.580361
    6 -0.759183 0.141554 -0.243270 2.840325
    # dict字典DataFrame
       A     B  C D   E
    0 1.0 2013-01-02 1.0 3  test
    1 1.0 2013-01-02 1.0 3 train
    2 1.0 2013-01-02 1.0 3  test
    3 1.0 2013-01-02 1.0 3 train

    3、查看数据

    函数head(n)可以查看DataFrame前n行的数据,tail(n)查看倒数n行的数据

    index()查看DataFrame的行标签,columns显示列标签

    describe()按列显示数据的统计信息,包括计数、均值、方差、最小最大值等。

    函数mean()显示所有列的均值,mean(1)显示所有行的均值

    sum()求所有列的均值,sum(1)求所有行的均值

    DataFrame有一个empty属性用于判断是否为空,若为空则返回True

    arr = np.random.randn(6, 4)
    df = pd.DataFrame(arr, index=np.arange(1, 7), columns=list('ABCD'))
    print(df.head(3))
    print(df.index)
    print(df.describe())

    结果如下

    # 查看前三行数据
    A     B     C     D
    1 3.260449 -0.619396 0.070877 1.586914
    2 -0.529708 0.071917 -1.919316 1.845727
    3 -1.005765 2.176579 -0.323483 -1.295067
    # 查看行标签
    Int64Index([1, 2, 3, 4, 5, 6], dtype='int64')
    # 查看统计信息
           A     B     C     D
    count 6.000000 6.000000 6.000000 6.000000
    mean -0.184606 -0.487184 0.079433 0.855810
    std  1.721394 1.800460 1.379498 1.128764
    min  -1.443635 -3.091446 -1.919316 -1.295067
    25%  -0.967105 -1.430192 -0.281188 0.778729
    50%  -0.694488 -0.273739 -0.041713 1.150944
    75%  -0.531744 0.197755 0.355731 1.508475
    max  3.260449 2.176579 2.352142 1.845727