Pandas - 基本功能

  • 简述

    至此,我们了解了三个 Pandas 数据结构以及如何创建它们。我们将主要关注 DataFrame 对象,因为它在实时数据处理中的重要性,并讨论其他一些 数据结构。
  • Series基本功能

    序号 属性或方法和描述
    1
    axes
    返回行轴标签的列表
    2
    dtype
    返回对象的数据类型。
    3
    empty
    如果Series为空,则返回 True。
    4
    ndim
    根据定义 1 返回基础数据的维数。
    5
    size
    返回基础数据中的元素数。
    6
    values
    将 Series 作为 ndarray 返回。
    7
    head()
    返回前 n 行。
    8
    tail()
    返回最后 n 行。
    现在让我们创建一个Series并查看上述所有列表属性操作。

    例子

    
    import pandas as pd
    import numpy as np
    #Create a series with 100 random numbers
    s = pd.Series(np.random.randn(4))
    print s
    
    它的输出如下 -
    
    0   0.967853
    1  -0.148368
    2  -1.395906
    3  -1.758394
    dtype: float64
    

    axes

    返回Series标签的列表。
    
    import pandas as pd
    import numpy as np
    #Create a series with 100 random numbers
    s = pd.Series(np.random.randn(4))
    print ("The axes are:")
    print s.axes
    
    它的输出如下 -
    
    The axes are:
    [RangeIndex(start=0, stop=4, step=1)]
    
    上述结果是从 0 到 5 的值列表的紧凑格式,即 [0,1,2,3,4]。

    empty

    返回表示 Object 是否为空的布尔值。True 表示对象为空。
    
    import pandas as pd
    import numpy as np
    #Create a series with 100 random numbers
    s = pd.Series(np.random.randn(4))
    print ("Is the Object empty?")
    print s.empty
    
    它的输出如下 -
    
    Is the Object empty?
    False
    

    ndim

    返回对象的维数。根据定义,Series 是一维数据结构,因此它返回
    
    import pandas as pd
    import numpy as np
    #Create a series with 4 random numbers
    s = pd.Series(np.random.randn(4))
    print s
    print ("The dimensions of the object:")
    print s.ndim
    
    它的输出如下 -
    
    0   0.175898
    1   0.166197
    2  -0.609712
    3  -1.377000
    dtype: float64
    The dimensions of the object:
    1
    

    size

    返回Series的大小(长度)。
    
    import pandas as pd
    import numpy as np
    #Create a series with 4 random numbers
    s = pd.Series(np.random.randn(2))
    print s
    print ("The size of the object:")
    print s.size
    
    它的输出如下 -
    
    0   3.078058
    1  -1.207803
    dtype: float64
    The size of the object:
    2
    

    以数组形式返回Series中的实际数据。
    
    import pandas as pd
    import numpy as np
    #Create a series with 4 random numbers
    s = pd.Series(np.random.randn(4))
    print s
    print ("The actual data series is:")
    print s.values
    
    它的输出如下 -
    
    0   1.787373
    1  -0.605159
    2   0.180477
    3  -0.140922
    dtype: float64
    The actual data series is:
    [ 1.78737302 -0.60515881 0.18047664 -0.1409218 ]
    

    Head & Tail

    要查看 Series 或 DataFrame 对象的小样本,请使用 head() 和 tail() 方法。
    head()返回第一个n行(观察索引值)。要显示的默认元素数量为五个,但您可以传递自定义数字。
    
    import pandas as pd
    import numpy as np
    #Create a series with 4 random numbers
    s = pd.Series(np.random.randn(4))
    print ("The original series is:")
    print s
    print ("The first two rows of the data series:")
    print s.head(2)
    
    它的输出如下 -
    
    The original series is:
    0   0.720876
    1  -0.765898
    2   0.479221
    3  -0.139547
    dtype: float64
    The first two rows of the data series:
    0   0.720876
    1  -0.765898
    dtype: float64
    
    tail()返回最后一个n行(观察索引值)。要显示的默认元素数量为五个,但您可以传递自定义数字。
    
    import pandas as pd
    import numpy as np
    #Create a series with 4 random numbers
    s = pd.Series(np.random.randn(4))
    print ("The original series is:")
    print s
    print ("The last two rows of the data series:")
    print s.tail(2)
    
    它的输出如下 -
    
    The original series is:
    0 -0.655091
    1 -0.881407
    2 -0.608592
    3 -2.341413
    dtype: float64
    The last two rows of the data series:
    2 -0.608592
    3 -2.341413
    dtype: float64
    
  • DataFrame 基本功能

    现在让我们了解什么是 DataFrame 基本功能。下表列出了有助于 DataFrame 基本功能的重要属性或方法。
    序号 属性或方法和描述
    1
    T
    转置行和列。
    2
    axes
    返回一个列表,其中行轴标签和列轴标签作为唯一成员。
    3
    dtypes
    返回此对象中的 dtypes。
    4
    empty
    如果 NDFrame 完全为空 [无项目],则为真;如果任何轴的长度为 0。
    5
    ndim
    轴数/数组维度。
    6
    shape
    返回一个表示 DataFrame 维度的元组。
    7
    size
    NDFrame 中的元素数。
    8
    values
    NDFrame 的 Numpy 表示。
    9
    head()
    返回前 n 行。
    10
    tail()
    返回最后 n 行。
    现在让我们创建一个 DataFrame,看看上面提到的属性是如何运作的。

    例子

    
    import pandas as pd
    import numpy as np
    #Create a Dictionary of series
    d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack']),
       'Age':pd.Series([25,26,25,23,30,29,23]),
       'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
    #Create a DataFrame
    df = pd.DataFrame(d)
    print ("Our data series is:")
    print df
    
    它的输出如下 -
    
    Our data series is:
        Age   Name    Rating
    0   25    Tom     4.23
    1   26    James   3.24
    2   25    Ricky   3.98
    3   23    Vin     2.56
    4   30    Steve   3.20
    5   29    Smith   4.60
    6   23    Jack    3.80
    

    T(Transpose)

    返回 DataFrame 的转置。行和列将互换。
    
    import pandas as pd
    import numpy as np
     
    # Create a Dictionary of series
    d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack']),
       'Age':pd.Series([25,26,25,23,30,29,23]),
       'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
    # Create a DataFrame
    df = pd.DataFrame(d)
    print ("The transpose of the data series is:")
    print df.T
    
    它的输出如下 -
    
    The transpose of the data series is:
             0     1       2      3      4      5       6
    Age      25    26      25     23     30     29      23
    Name     Tom   James   Ricky  Vin    Steve  Smith   Jack
    Rating   4.23  3.24    3.98   2.56   3.2    4.6     3.8
    

    axes

    返回行轴标签和列轴标签的列表。
    
    import pandas as pd
    import numpy as np
    #Create a Dictionary of series
    d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack']),
       'Age':pd.Series([25,26,25,23,30,29,23]),
       'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
    #Create a DataFrame
    df = pd.DataFrame(d)
    print ("Row axis labels and column axis labels are:")
    print df.axes
    
    它的输出如下 -
    
    Row axis labels and column axis labels are:
    [RangeIndex(start=0, stop=7, step=1), Index([u'Age', u'Name', u'Rating'],
    dtype='object')]
    

    dtypes

    返回每列的数据类型。
    
    import pandas as pd
    import numpy as np
    #Create a Dictionary of series
    d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack']),
       'Age':pd.Series([25,26,25,23,30,29,23]),
       'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
    #Create a DataFrame
    df = pd.DataFrame(d)
    print ("The data types of each column are:")
    print df.dtypes
    
    它的输出如下 -
    
    The data types of each column are:
    Age     int64
    Name    object
    Rating  float64
    dtype: object
    

    empty

    返回表示 Object 是否为空的布尔值;True 表示对象为空。
    
    import pandas as pd
    import numpy as np
     
    #Create a Dictionary of series
    d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack']),
       'Age':pd.Series([25,26,25,23,30,29,23]),
       'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
     
    #Create a DataFrame
    df = pd.DataFrame(d)
    print ("Is the object empty?")
    print df.empty
    
    它的输出如下 -
    
    Is the object empty?
    False
    

    ndim

    返回对象的维数。根据定义,DataFrame 是一个 2D 对象。
    
    import pandas as pd
    import numpy as np
    #Create a Dictionary of series
    d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack']),
       'Age':pd.Series([25,26,25,23,30,29,23]),
       'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
    #Create a DataFrame
    df = pd.DataFrame(d)
    print ("Our object is:")
    print df
    print ("The dimension of the object is:")
    print df.ndim
    
    它的输出如下 -
    
    Our object is:
          Age    Name     Rating
    0     25     Tom      4.23
    1     26     James    3.24
    2     25     Ricky    3.98
    3     23     Vin      2.56
    4     30     Steve    3.20
    5     29     Smith    4.60
    6     23     Jack     3.80
    The dimension of the object is:
    2
    

    shape

    返回一个表示 DataFrame 维度的元组。元组 (a,b),其中 a 表示行数,b表示列数。
    
    import pandas as pd
    import numpy as np
     
    #Create a Dictionary of series
    d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack']),
       'Age':pd.Series([25,26,25,23,30,29,23]),
       'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
     
    #Create a DataFrame
    df = pd.DataFrame(d)
    print ("Our object is:")
    print df
    print ("The shape of the object is:")
    print df.shape
    
    它的输出如下 -
    
    Our object is:
       Age   Name    Rating
    0  25    Tom     4.23
    1  26    James   3.24
    2  25    Ricky   3.98
    3  23    Vin     2.56
    4  30    Steve   3.20
    5  29    Smith   4.60
    6  23    Jack    3.80
    The shape of the object is:
    (7, 3)
    

    size

    返回 DataFrame 中的元素数。
    
    import pandas as pd
    import numpy as np
     
    #Create a Dictionary of series
    d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack']),
       'Age':pd.Series([25,26,25,23,30,29,23]),
       'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
     
    #Create a DataFrame
    df = pd.DataFrame(d)
    print ("Our object is:")
    print df
    print ("The total number of elements in our object is:")
    print df.size
    
    它的输出如下 -
    
    Our object is:
        Age   Name    Rating
    0   25    Tom     4.23
    1   26    James   3.24
    2   25    Ricky   3.98
    3   23    Vin     2.56
    4   30    Steve   3.20
    5   29    Smith   4.60
    6   23    Jack    3.80
    The total number of elements in our object is:
    21
    

    返回 DataFrame 中的实际数据作为NDarray.
    
    import pandas as pd
    import numpy as np
     
    #Create a Dictionary of series
    d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack']),
       'Age':pd.Series([25,26,25,23,30,29,23]),
       'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
     
    #Create a DataFrame
    df = pd.DataFrame(d)
    print ("Our object is:")
    print df
    print ("The actual data in our data frame is:")
    print df.values
    
    它的输出如下 -
    
    Our object is:
        Age   Name    Rating
    0   25    Tom     4.23
    1   26    James   3.24
    2   25    Ricky   3.98
    3   23    Vin     2.56
    4   30    Steve   3.20
    5   29    Smith   4.60
    6   23    Jack    3.80
    The actual data in our data frame is:
    [[25 'Tom' 4.23]
    [26 'James' 3.24]
    [25 'Ricky' 3.98]
    [23 'Vin' 2.56]
    [30 'Steve' 3.2]
    [29 'Smith' 4.6]
    [23 'Jack' 3.8]]
    

    Head & Tail

    要查看 DataFrame 对象的小样本,请使用head()和 tail() 方法。head()返回第一个n行(观察索引值)。要显示的默认元素数量为五个,但您可以传递自定义数字。
    
    import pandas as pd
    import numpy as np
     
    #Create a Dictionary of series
    d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack']),
       'Age':pd.Series([25,26,25,23,30,29,23]),
       'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
    #Create a DataFrame
    df = pd.DataFrame(d)
    print ("Our data frame is:")
    print df
    print ("The first two rows of the data frame is:")
    print df.head(2)
    
    它的输出如下 -
    
    Our data frame is:
        Age   Name    Rating
    0   25    Tom     4.23
    1   26    James   3.24
    2   25    Ricky   3.98
    3   23    Vin     2.56
    4   30    Steve   3.20
    5   29    Smith   4.60
    6   23    Jack    3.80
    The first two rows of the data frame is:
       Age   Name   Rating
    0  25    Tom    4.23
    1  26    James  3.24
    
    tail()返回最后一个n行(观察索引值)。要显示的默认元素数量为五个,但您可以传递自定义数字。
    
    import pandas as pd
    import numpy as np
    #Create a Dictionary of series
    d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Smith','Jack']),
       'Age':pd.Series([25,26,25,23,30,29,23]), 
       'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
     
    #Create a DataFrame
    df = pd.DataFrame(d)
    print ("Our data frame is:")
    print df
    print ("The last two rows of the data frame is:")
    print df.tail(2)
    
    它的输出如下 -
    
    Our data frame is:
        Age   Name    Rating
    0   25    Tom     4.23
    1   26    James   3.24
    2   25    Ricky   3.98
    3   23    Vin     2.56
    4   30    Steve   3.20
    5   29    Smith   4.60
    6   23    Jack    3.80
    The last two rows of the data frame is:
        Age   Name    Rating
    5   29    Smith    4.6
    6   23    Jack     3.8