5.3 DataFrame对象

来源:互联网 发布:mysql创建序列sql语句 编辑:程序博客网 时间:2024/06/08 10:31

5.3.1 DataFrame介绍

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

5.3.2 创建DataFrame对象

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

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

运行结果

          A         B         C         D0 -0.846645  1.520671 -0.381286 -1.1200171  0.448834  0.287758  0.207721 -0.4595742  0.140812 -1.151756 -0.629771  0.5013683 -1.757895 -0.311795 -0.023981 -0.4339214 -2.666680  0.162864  1.905826  0.3126445  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         B0  0.086054  0.0331481 -0.350087 -1.1169802  1.448491 -0.2166063  0.023093 -0.7508714 -0.391246  1.3123275  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  B0 2017-04-15  11 2017-04-15  12 2017-04-15  13 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    float64B    float64C    float64D    float64dtype: 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 5Data columns (total 4 columns):A    6 non-null float64B    6 non-null float64C    6 non-null float64D    6 non-null float64dtypes: float64(4)memory usage: 240.0 bytesNoneA    6B    6C    6D    6dtype: int64head()方法用来查看前几行数据(默认是前5行),不过也可以通过括号内的参数指定前几行,示例代码:```pythonprint(df.head())

运行结果:

          A         B         C         D0 -0.846645  1.520671 -0.381286 -1.1200171  0.448834  0.287758  0.207721 -0.4595742  0.140812 -1.151756 -0.629771  0.5013683 -1.757895 -0.311795 -0.023981 -0.4339214 -2.666680  0.162864  1.905826  0.312644

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

print(df.head(3))

运行结果:

          A         B         C         D0 -0.846645  1.520671 -0.381286 -1.1200171  0.448834  0.287758  0.207721 -0.4595742  0.140812 -1.151756 -0.629771  0.501368

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

print(df.tail())

运行结果:

          A         B         C         D1  0.448834  0.287758  0.207721 -0.4595742  0.140812 -1.151756 -0.629771  0.5013683 -1.757895 -0.311795 -0.023981 -0.4339214 -2.666680  0.162864  1.905826  0.3126445  0.841167 -1.883985  0.473520 -0.061960

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

print(df.describe())

运行结果:

              A         B         C         Dcount  6.000000  6.000000  6.000000  6.000000mean  -0.640068 -0.229374  0.258671 -0.210243std    1.370322  1.189895  0.898960  0.590199min   -2.666680 -1.883985 -0.629771 -1.12001725%   -1.530083 -0.941765 -0.291960 -0.45316150%   -0.352917 -0.074465  0.091870 -0.24794175%    0.371828  0.256535  0.407070  0.218993max    0.841167  1.520671  1.905826  0.501368

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

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

运行结果:

          A         B         C         D2  0.140812 -1.151756 -0.629771  0.5013680 -0.846645  1.520671 -0.381286 -1.1200173 -1.757895 -0.311795 -0.023981 -0.4339211  0.448834  0.287758  0.207721 -0.4595745  0.841167 -1.883985  0.473520 -0.0619604 -2.666680  0.162864  1.905826  0.312644

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

print(df.T)

运行结果:

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