【数据处理】Pandas库:数据索引操作

1,365 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情

注意:本案例使用 Jupyter Notebook 进行案例演示

今天,我们将继续介绍Pandas库数据处理基本操作,本节将主要介绍数据的索引,如何使用索引获取指定数据?有一张表,如何获取你想要的数据?

1. 索引操作

1.1 直接索引

  • 如果想直接索引到想要的数据,需要遵循第一个[]内为列索引,第二个[]内为行索引
  • 先列后行:data[][]
  • 若想使用先行后列的形式:data.loc[][]

1.2 按名字索引

  • data.loc[][]:输入行列索引名称

接下来,我们使用案例进行操作演示:

读取数据:将获取到的数据传给变量people

import pandas as pd
people = pd.read_csv("data/data140190/人口.csv")
people.head()

读取数据后的的运行结果如下图所示:

image.png

对于上面所示的数据,我们先进行直接索引操作:

  • 语法:
    • 先列后行:data[][]
# 必须先列后行
people["出生人口(万)"][1]

运行结果如下图所示:["出生人口(万)"]为列索引,[1]为行索引。

image.png

1.3 按数字索引

  • data.iloc[][]
  • 直接传入行列索引对应的数字即可
people_new.iloc[0][0]

运行结果如下图所示:

image.png

1.4 组合索引

  • 数字和名字混用

1.4.1 方法1:

  • 使用.loc
  • 名称索引可直接输入名称
  • 数字索引需要转换索引(先获取到数字所在位置的索引值)
  • people.index[0:4]:获取0-4行的行索引
people.loc[people.index[0:4], ["出生人口(万)","中国性别比例(按照女生=100)"]]

运行结果如下图所示:既使用了数字索引people.index[0:4],又使用了名称索引"出生人口(万)","中国性别比例(按照女生=100)",即获取到了第一行至第四行的"出生人口(万)"与"中国性别比例(按照女生=100)"两列数据。

image.png

1.4.2 方法2:

  • 使用.iloc
    • 对于数字索引可以直接使用数字表示
    • 对于名称索引需要先获取到名称所在的索引
    • columns.get_indexer:获取列索引
people.iloc[0:4, people.columns.get_indexer(['出生人口(万)','中国性别比例(按照女生=100)'])]
# data.columns.get_indexer获取某几个列索引

运行结果如下图所示:

image.png