Python - 数据科学之数据操作

  • 简述

    Python主要通过Pandas和Numpy这两个库来处理各种格式的数据。我们已经在前面的章节中看到了这两个库的重要特性。在本章中,我们将看到每个库中有关如何操作数据的一些基本示例。
  • Numpy 中的数据操作

    NumPy 中定义的最重要的对象是一个称为 ndarray 的 N 维数组类型。它描述了相同类型的项目的集合。可以使用从零开始的索引来访问集合中的项目。ndarray 类的实例可以通过本教程后面描述的不同数组创建例程来构造。基本的 ndarray 是使用 NumPy 中的数组函数创建的,如下所示 -
    
    numpy.array 
    
    以下是有关 Numpy 数据处理的一些示例。

    示例 1

    
    # more than one dimensions 
    import numpy as np 
    a = np.array([[1, 2], [3, 4]]) 
    print a
    
    输出如下 -
    
    [[1, 2] 
     [3, 4]]
    

    示例 2

    
    # minimum dimensions 
    import numpy as np 
    a = np.array([1, 2, 3,4,5], ndmin = 2) 
    print a
    
    输出如下 -
    
    [[1, 2, 3, 4, 5]]
    
  • 示例 3

    
    # dtype parameter 
    import numpy as np 
    a = np.array([1, 2, 3], dtype = complex) 
    print a
    
    输出如下 -
    
    [ 1.+0.j,  2.+0.j,  3.+0.j]
    
  • Pandas 中的数据操作

    熊猫通过以下方式处理数据Series,Data Frame, 和Panel. 我们将从其中的每一个中看到一些示例。
  • 熊猫系列

    Series 是一个一维标记数组,能够保存任何类型的数据(整数、字符串、浮点数、python 对象等)。轴标签统称为索引。可以使用以下构造函数创建熊猫系列 -
    
    pandas.Series( data, index, dtype, copy)
    

    例子

    在这里,我们从 Numpy 数组创建一个系列。
    
    #import the pandas library and aliasing as pd
    import pandas as pd
    import numpy as np
    data = np.array(['a','b','c','d'])
    s = pd.Series(data)
    print s
    
    它的输出如下 -
    
    0   a
    1   b
    2   c
    3   d
    dtype: object
    
  • 熊猫数据框

    数据框是一种二维数据结构,即数据以表格的方式在行和列中对齐。可以使用以下构造函数创建 pandas DataFrame -
    
    pandas.DataFrame( data, index, columns, dtype, copy)
    
    现在让我们使用数组创建一个索引 DataFrame。
    
    import pandas as pd
    data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
    df = pd.DataFrame(data, index=['rank1','rank2','rank3','rank4'])
    print df
    
    它的输出如下 -
    
             Age    Name
    rank1    28      Tom
    rank2    34     Jack
    rank3    29    Steve
    rank4    42    Ricky
    
  • 熊猫面板

    panel是数据的 3D 容器。术语Panel data源自计量经济学,部分负责命名 pandas -pan(el)-da(ta)-s。
    可以使用以下构造函数创建面板 -
    
    pandas.Panel(data, items, major_axis, minor_axis, dtype, copy)
    
    在下面的示例中,我们从 DataFrame 对象的 dict 创建一个面板
    
    #creating an empty panel
    import pandas as pd
    import numpy as np
    data = {'Item1' : pd.DataFrame(np.random.randn(4, 3)), 
            'Item2' : pd.DataFrame(np.random.randn(4, 2))}
    p = pd.Panel(data)
    print p
    
    它的输出如下 -
    
    <class 'pandas.core.panel.Panel'>
    Dimensions: 2 (items) x 4 (major_axis) x 5 (minor_axis)
    Items axis: 0 to 1
    Major_axis axis: 0 to 3
    Minor_axis axis: 0 to 4