美文网首页
5.3 DataFrame对象

5.3 DataFrame对象

作者: 操作系统 | 来源:发表于2017-04-11 16:49 被阅读0次

    5.3.1 DataFrame介绍

    DataFrame对象是Pandas最常用的数据对象。一个DataFrame是一个二维的表结构,它可以存储多种不同的数据类型,并且每一个坐标轴都有自己的标签。简单的说,DataFrame就是在pandas中组织数据的表格。

    5.3.2 创建DataFrame对象

    下面创建一个DataFrame对象,示例代码:

    import numpy as np
    import pandas as pd
    df = pd.DataFrame(np.random.randn(6,4), index = np.arange(0,6), columns = list("ABCD"))
    print(df)
    

    运行结果

              A         B         C         D
    0 -0.846645  1.520671 -0.381286 -1.120017
    1  0.448834  0.287758  0.207721 -0.459574
    2  0.140812 -1.151756 -0.629771  0.501368
    3 -1.757895 -0.311795 -0.023981 -0.433921
    4 -2.666680  0.162864  1.905826  0.312644
    5  0.841167 -1.883985  0.473520 -0.061960
    

    我们创建一个6*4的数据,numpy.random的randn函数用于创建服从正态分布的随机数;index参数表示行标索引,即数据行记录从0到5;colunms参数表示列标索引,即数据列属性从A到B。
    此外,我们也可以用字典创建DataFrame对象,例如创建一个列名分别为A和B的数据框,索引是自动创建的整数,示例代码:

    df2 = pd.DataFrame( { 'A' : np.random.randn(6), 'B' : np.random.randn(6),} )
    print(df2)
    

    运行结果

              A         B
    0  0.086054  0.033148
    1 -0.350087 -1.116980
    2  1.448491 -0.216606
    3  0.023093 -0.750871
    4 -0.391246  1.312327
    5  0.767756 -0.803959
    

    假如字典内的数据长度不同,以最长的数据为准,比如A列有1行,B列有4行,示例代码:

    df3 = pd.DataFrame( { 'A' : pd.Timestamp("20170415"), 'B' : pd.Series(1, index=list(range(4))), } )
    print(df3)
    

    运行结果

               A  B
    0 2017-04-15  1
    1 2017-04-15  1
    2 2017-04-15  1
    3 2017-04-15  1
    

    5.3.3 DataFrame对象的属性

    DataFrame对象创建之后,具备了描述其数据及结构特征的相关属性,主要有index,columns,values,dtypes和shape等。
    info主要用来对DataFrame对象基本信息的描述,index和columns分别表示行索引和列名,示例代码:

    print(df.index)
    print("\n")
    print(df.columns)
    

    运行结果:

    Int64Index([0, 1, 2, 3, 4, 5], dtype='int64')
    
    
    Index(['A', 'B', 'C', 'D'], dtype='object')
    

    values属性用来查看数据值,示例代码:

    print(df.values)
    

    运行结果:

    [[-0.84664486  1.52067103 -0.38128625 -1.12001714]
     [ 0.44883372  0.28775841  0.20772062 -0.45957372]
     [ 0.1408116  -1.15175558 -0.62977112  0.50136828]
     [-1.75789514 -0.3117948  -0.02398082 -0.43392136]
     [-2.66668042  0.16286389  1.90582602  0.31264409]
     [ 0.8411672  -1.88398537  0.47351964 -0.06196017]]
    

    dtypes属性用来获取每行变量的数据类型,shape属性与NumPy的ndarray数组类似,可以得到DataFrame的行数和列数。示例代码:

    print(df.dtypes)
    print("\n")
    print(df.shape)
    

    运行结果:

    A    float64
    B    float64
    C    float64
    D    float64
    dtype: object
    
    
    (6, 4)
    

    5.3.4 DataFrame对象的方法

    我们可以通过DataFrame具备的方法观察数据值的相关信息,主要方法有info()、count()、head()、tail()、sort()、decribe()等。
    info()方法是对DataFrame对象一个基本信息的描述,而count()方法是返回每一列变量中所有非缺失数据的个数,示例代码:

    print(df.info())
    print("\n")
    print(df.count())
    

    运行结果:

    <class 'pandas.core.frame.DataFrame'>
    Int64Index: 6 entries, 0 to 5
    Data columns (total 4 columns):
    A    6 non-null float64
    B    6 non-null float64
    C    6 non-null float64
    D    6 non-null float64
    dtypes: float64(4)
    memory usage: 240.0 bytes
    None
    
    
    A    6
    B    6
    C    6
    D    6
    dtype: int64
    head()方法用来查看前几行数据(默认是前5行),不过也可以通过括号内的参数指定前几行,示例代码:
    ```python
    print(df.head())
    

    运行结果:

              A         B         C         D
    0 -0.846645  1.520671 -0.381286 -1.120017
    1  0.448834  0.287758  0.207721 -0.459574
    2  0.140812 -1.151756 -0.629771  0.501368
    3 -1.757895 -0.311795 -0.023981 -0.433921
    4 -2.666680  0.162864  1.905826  0.312644
    

    指定显示前3行数据,示例代码:

    print(df.head(3))
    

    运行结果:

              A         B         C         D
    0 -0.846645  1.520671 -0.381286 -1.120017
    1  0.448834  0.287758  0.207721 -0.459574
    2  0.140812 -1.151756 -0.629771  0.501368
    

    使用tail()方法则用来查看最后几行数据(默认也是5行),示例代码:

    print(df.tail())
    

    运行结果:

              A         B         C         D
    1  0.448834  0.287758  0.207721 -0.459574
    2  0.140812 -1.151756 -0.629771  0.501368
    3 -1.757895 -0.311795 -0.023981 -0.433921
    4 -2.666680  0.162864  1.905826  0.312644
    5  0.841167 -1.883985  0.473520 -0.061960
    

    describe()方法用于获取数据集的常用统计量信息,包括计数、平均数、标准差、最大值、最小值及4分位差。需要注意的是,该方法仅会返回数值型变量的信息,示例代码:

    print(df.describe())
    

    运行结果:

                  A         B         C         D
    count  6.000000  6.000000  6.000000  6.000000
    mean  -0.640068 -0.229374  0.258671 -0.210243
    std    1.370322  1.189895  0.898960  0.590199
    min   -2.666680 -1.883985 -0.629771 -1.120017
    25%   -1.530083 -0.941765 -0.291960 -0.453161
    50%   -0.352917 -0.074465  0.091870 -0.247941
    75%    0.371828  0.256535  0.407070  0.218993
    max    0.841167  1.520671  1.905826  0.501368
    

    我们也可以通过sort()方法对数据进行排序,其中sort()括号内参数可以指定根据哪一列数据进行排序,默认是首列,以从小到大顺序方式排列。示例代码:

    print(df.sort(columns='C'))
    

    运行结果:

              A         B         C         D
    2  0.140812 -1.151756 -0.629771  0.501368
    0 -0.846645  1.520671 -0.381286 -1.120017
    3 -1.757895 -0.311795 -0.023981 -0.433921
    1  0.448834  0.287758  0.207721 -0.459574
    5  0.841167 -1.883985  0.473520 -0.061960
    4 -2.666680  0.162864  1.905826  0.312644
    

    此外,DataFrame与ndarray类似,也提供了大T方法,即对表格数据进行转置操作,示例代码:

    print(df.T)
    

    运行结果:

              0         1         2         3         4         5
    A -0.846645  0.448834  0.140812 -1.757895 -2.666680  0.841167
    B  1.520671  0.287758 -1.151756 -0.311795  0.162864 -1.883985
    C -0.381286  0.207721 -0.629771 -0.023981  1.905826  0.473520
    D -1.120017 -0.459574  0.501368 -0.433921  0.312644 -0.061960
    

    相关文章

      网友评论

          本文标题:5.3 DataFrame对象

          本文链接:https://www.haomeiwen.com/subject/lthsattx.html