Python Pandas 结构之 Series 和 DataFrame

文章目录

  • 1 概述
  • 1.1 Pandas 安装
  • 1.2 Series 和 DataFrame 结构
  • 2 Series:一维数组
  • 2.1 创建 Series 对象
  • 2.1.1 创建
  • 2.1.2 创建并指定标签索引
  • 2.1.3 创建并指定数据类型
  • 2.2 访问 Series 数据
  • 2.2.1 按位置索引访问
  • 2.2.2 按标签索引访问
  • 2.3 常用属性
  • 2.3.1 index: 标签索引
  • 2.3.2 values: 数据值
  • 2.3.3 dtype: 数据值类型
  • 2.3.4 size: 对象的大小
  • 2.3.5 empty: 判断对象是否为空
  • 2.4 常用方法
  • 2.4.1 head(): 查看前 n 行数据
  • 2.4.2 tail(): 查看后 n 行数据
  • 2.4.3 isnull(): 检测是否缺失
  • 2.4.4 notnull(): 检测是否不缺失
  • 3 DataFrame:二维数组
  • 3.1 创建 DataFrame 对象
  • 3.1.1 创建
  • 3.1.2 创建并指定索引标签
  • 3.1.3 创建并指定数据类型
  • 3.2 访问 DataFrame 数据
  • 3.2.1 按行索引访问
  • 3.2.2 按列索引访问
  • 3.3 常用属性和方法
  • 3.3.1 T:行列互换
  • 1 概述

    1.1 Pandas 安装

  • 安装命令:pip install pandas
  • import pandas as pd
    
    print(f'查看 pandas 版本:{pd.__version__}')
    

    1.2 Series 和 DataFrame 结构

    2 Series:一维数组

    2.1 创建 Series 对象

    # 语法格式
    import pandas as pd
    
    s = pd.Series(data, index, dtype)
    
    常用参数 参数描述
    data 输入的数据,可以是任何类型,如:列表、字典 等
    index 数据索引。唯一,默认为 np.arrange(n)
    dtype 数据类型。如果没有提供,则会自动判断得出

    2.1.1 创建

    import pandas as pd
    
    data = [10, 20, 30, 40, 50]
    
    s = pd.Series(data)
    
    print(s)
    # 0    10
    # 1    20
    # 2    30
    # 3    40
    # 4    50
    # dtype: int64
    

    2.1.2 创建并指定标签索引

    import pandas as pd
    
    data = [10, 20, 30, 40, 50]
    index = ['a', 'b', 'c', 'd', 'e']
    
    s = pd.Series(data, index)
    
    print(s)
    # a    10
    # b    20
    # c    30
    # d    40
    # e    50
    # dtype: int64
    

    2.1.3 创建并指定数据类型

    import pandas as pd
    
    data = [10, 20, 30, 40, 50]
    
    s = pd.Series(data, dtype=float)
    
    print(s)
    # 0    10.0
    # 1    20.0
    # 2    30.0
    # 3    40.0
    # 4    50.0
    # dtype: float64
    

    2.2 访问 Series 数据

    2.2.1 按位置索引访问

    import pandas as pd
    
    data = [10, 20, 30, 40, 50]
    
    s = pd.Series(data)
    
    print(s[0])  # 通过索引
    print(s[0:2])  # 通过索引切片
    # 10
    #
    # 0    10
    # 1    20
    # dtype: int64
    

    2.2.2 按标签索引访问

    import pandas as pd
    
    data = [10, 20, 30, 40, 50]
    index = ['a', 'b', 'c', 'd', 'e']
    
    s = pd.Series(data, index)
    
    print(s['a'])  # 10
    

    2.3 常用属性

    2.3.1 index: 标签索引

    import pandas as pd
    
    data = [10, 20, 30, 40, 50]
    
    s = pd.Series(data)
    
    print(s.index)
    # RangeIndex(start=0, stop=5, step=1)
    

    2.3.2 values: 数据值

    import pandas as pd
    
    data = [10, 20, 30, 40, 50]
    
    s = pd.Series(data)
    
    print(s.values)
    # [10 20 30 40 50]
    

    2.3.3 dtype: 数据值类型

    import pandas as pd
    
    data = [10, 20, 30, 40, 50]
    
    s = pd.Series(data)
    
    print(s.dtype)  # int64
    

    2.3.4 size: 对象的大小

    import pandas as pd
    
    data = [10, 20, 30, 40, 50]
    
    s = pd.Series(data)
    
    print(s.size)  # 5
    

    2.3.5 empty: 判断对象是否为空

    import pandas as pd
    
    data = []
    
    s = pd.Series(data)
    
    print(s.empty)  # True
    

    2.4 常用方法

    2.4.1 head(): 查看前 n 行数据

    import pandas as pd
    
    data = [10, 20, 30, 40, 50]
    
    s = pd.Series(data)
    
    print(s.head(3))
    # 0    10
    # 1    20
    # 2    30
    # dtype: int64
    

    2.4.2 tail(): 查看后 n 行数据

    import pandas as pd
    
    data = [10, 20, 30, 40, 50]
    
    s = pd.Series(data)
    
    print(s.tail(3))
    # 2    30
    # 3    40
    # 4    50
    # dtype: int64
    

    2.4.3 isnull(): 检测是否缺失

    import pandas as pd
    
    data = [10, 20, 30, 40, 50, None]
    
    s = pd.Series(data)
    
    print(s.isnull())
    # 0    False
    # 1    False
    # 2    False
    # 3    False
    # 4    False
    # 5     True
    # dtype: bool
    

    2.4.4 notnull(): 检测是否不缺失

    import pandas as pd
    
    data = [10, 20, 30, 40, 50, None]
    
    s = pd.Series(data)
    
    print(s.notnull())
    # 0    False
    # 1    False
    # 2    False
    # 3    False
    # 4    False
    # 5     True
    # dtype: bool
    

    3 DataFrame:二维数组

    3.1 创建 DataFrame 对象

    # 语法格式
    import pandas as pd
    
    s = pd.DataFrame(data, index, columns, dtype)
    
    常用参数 参数描述
    data 输入的数据,可以是任何类型,如:列表、字典 等
    index 行标签。唯一,默认为 np.arrange(n)
    columns 列标签。唯一,默认为 np.arrange(n)
    dtype 数据类型。如果没有提供,则会自动判断得出

    3.1.1 创建

    示例1:一维数组

    import pandas as pd
    
    data = [10, 20, 30, 40, 50]
    
    df = pd.DataFrame(data)
    
    print(df)
    

    示例2:二维数组

    import pandas as pd
    
    data = [['张三', 10], ['李四', 20], ['王五', 30]]
    columns = ['Name', 'Age']
    
    df = pd.DataFrame(data, columns=columns)
    
    print(df)
    #     Name  Age
    # 0   张三   10
    # 1   李四   20
    # 2   王五   30
    

    3.1.2 创建并指定索引标签

    import pandas as pd
    
    data = [['张三', 10], ['李四', 20], ['王五', 30]]
    index = ['a', 'b', 'c']
    columns = ['Name', 'Age']
    
    df = pd.DataFrame(data, index, columns)
    
    print(df)
    #     Name  Age
    # a   张三   10
    # b   李四   20
    # c   王五   30
    

    3.1.3 创建并指定数据类型

    import pandas as pd
    
    data = [['张三', 10], ['李四', 20], ['王五', 30]]
    columns = ['Name', 'Age']
    
    df = pd.DataFrame(data, columns=columns, dtype=str)
    
    print(df)
    #     Name  Age
    # a   张三   10
    # b   李四   20
    # c   王五   30n
    

    3.2 访问 DataFrame 数据

    3.2.1 按行索引访问

    import pandas as pd
    
    data = [['张三', 10], ['李四', 20], ['王五', 30]]
    columns = ['Name', 'Age']
    
    df = pd.DataFrame(data, columns=columns)
    
    print(df.loc[0])
    # Name    张三
    # Age     10
    # Name: 0, dtype: object
    

    3.2.2 按列索引访问

    import pandas as pd
    
    data = [['张三', 10], ['李四', 20], ['王五', 30]]
    columns = ['Name', 'Age']
    
    df = pd.DataFrame(data, columns=columns)
    
    print(df['Name'])
    # 0    张三
    # 1    李四
    # 2    王五
    # Name: Name, dtype: object
    

    3.3 常用属性和方法

    常用属性和方法同 Series 类似,以下仅列举独属于 DataFrame

    3.3.1 T:行列互换

  • T:Transpose,转换
  • import pandas as pd
    
    data = [['张三', 10], ['李四', 20], ['王五', 30]]
    columns = ['Name', 'Age']
    
    df = pd.DataFrame(data, columns=columns)
    
    print(df.T)
    #        0   1   2
    # Name  张三  李四  王五
    # Age   10  20  30
    

    作者:鱼丸丶粗面

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python Pandas 结构之 Series 和 DataFrame

    发表回复