zoukankan      html  css  js  c++  java
  • pandas 对数据帧DataFrame中数据的索引及切片操作

    1、创建数据帧

      index是行索引,即每一行的名字;columns是列索引,即每一列的名字。建立数据帧时行索引和列索引都需要以列表的形式传入。

    import pandas as pd

    df = pd.DataFrame([[1, 2, 3], [4, 5, 6]], index=['row_0', 'row_1'], columns=['col_0', 'col_1', 'col_2'])

    2、获取数据帧的行索引和列索引

    2.1 获取行索引

    # 以数组形式返回
    row_name = df.index.values

    # 以列表形式返回
    row_name = df.index.values.tolist()

    2.2 获取列索引

    # 以数组的形式返回
    col_name = df.columns.values

    # 以列表的形式返回
    col_name = df.columns.values.tolist()

    3、获取指定行、列的元素

    3.1 获取指定行的元素

      获取某行数据需用.loc[]或.iloc[]方法,不能直接索引。

    # 以行名索引,返回一个系列(series)
    df_row0 = df.loc['row_0']

    # 以行的绝对位置索引,返回一个系列(series)
    df_row0 = df.iloc[0]

    3.2 获取指定列的元素

      获取某列数据可以通过列名直接索引。

    # 以列名索引,返回一个系列(series)
    df_col0 = df['col_0']

      索引某列不能直接通过列的绝对位置来索引,但可以转换思路,借助列索引值实现用绝对位置的间接索引。

    # df_col0 = df[0] 通过绝对位置直接索引报错
    # 通过列索引名 df.columns 实现对列的绝对位置索引
    df_col0 = df[df.columns[0]]

    4、对数据帧切片

     4.1 行切片

      对行进行切片操作,可以通过.iloc[]方法或直接用行的绝对位置。不能通过行名进行切片操作。

    # 通过iloc[]方法切片,[0:2]左闭右开,即切取第0行和第1行
    df_row = df.iloc[0:2]

     

    # 通过行的绝对位置切片,[0:2]左闭右开,即切取第0行和第1行
    df_row = df[0:2]

    4.2 列切片

      对列进行切片时,可以将所需要切取的列的列名组成一个一维的列表或数组,直接传入df[]即可。

    # df_col = df[df.columns[0:2]] 切取第0列和第1列,与下句代码等价
    df_col = df[['col_0', 'col_1']]

    4.3 局部切片

      先进行行切片,再进行列切片即可。

    # 切取第0行和第1行,'col_0'和'col_2'列
    df_new = df[0:2][['col_0', 'col_2']]

    5、获取某位置元素

    5.1 通过行、列定位

    # 通过行列定位,返回值为一个系列(series)
    df_new = df.loc['row_0'][['col_0']]

    5.2 通过.at[]方法

    # 用行名和列名索引,返回该位置的具体元素
    df_new = df.at['row_0', 'col_0']

    5.3 通过.iat[]方法

    # 用行列的绝对位置定位,返回该位置的具体元素
    df_new = df.iat[0,0]

     小结:对行操作一般通过df.iloc[绝对位置]或df.loc[‘行名’],对列操作直接用df[‘列名’]

  • 相关阅读:
    回顾
    单例模式
    元类
    反射和内置方法
    issubclass 和 isinstance和断点调试
    绑定方法和非绑定方法
    并发编程:IO多路复用。
    基于tcp的下载文件,以及struct模块的应用。
    并发编程:协程,异步调用。
    并发编程:GIL,线程池,进程池,阻塞,非阻塞,同步,异步
  • 原文地址:https://www.cnblogs.com/HL-space/p/10654842.html
Copyright © 2011-2022 走看看