Pandas
中的索引:pandas 中的索引意味着只需从 DataFrame 中选择特定的数据行和列。索引可能意味着选择所有行和一些列,一些行和所有列,或每行和列中的一些。索引也可以称为子集选择

选择一些行和一些列

让我们拿一个带有一些假数据的 DataFrame,现在我们在这个 DataFrame 上执行索引。在此,我们从 DataFrame 中选择一些行和一些列。带有数据集的数据框。

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_pandas


假设我们要选择 columns ​​Age​​​,​​College​​​并且​​Salary​​​只选择带有标签的行​​Amir Johnson​​​,​​Terry Rozier​

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_运算符_02


我们最终的 DataFrame 看起来像这样:

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_数据_03

选择一些行和所有列

假设我们要选择 row ​​Amir Jhonson​​​,​​Terry Rozier​​​并选择数据框中​​John Holland​​的所有列。

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_运算符_04


我们最终的 DataFrame 如下所示:

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_运算符_05

选择一些列和所有行

假设我们要在数据框中选择包含所有行的 Age、Height 和 Salary 列。

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_pandas_06


我们最终的 DataFrame 如下所示:

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_pandas_07


Pandas 索引使用​​[ ]​​​, ​​.loc[]​​​, ​​.iloc[ ]​​​,​​.ix[ ]​

有很多方法可以从 DataFrame 中提取元素、行和列。Pandas 中有一些索引方法有助于从 DataFrame 中获取元素。这些索引方法看起来非常相似,但行为却截然不同。Pandas 支持四种类型的多轴索引,它们是:

  • 数据框。[];此函数也称为索引运算符
  • Dataframe.loc[ ]:此函数用于标签。
  • Dataframe.iloc[ ]:此函数用于位置或基于整数
  • Dataframe.ix[]:此函数用于基于标签和整数

它们统称为索引器。这些是迄今为止最常见的数据索引方法。这四个函数有助于从 DataFrame 中获取元素、行和列。

使用索引运算符索引数据框[]
索引运算符用于引用对象后面的方括号。和索引器​​​.loc​​​还​​.iloc​​使用索引运算符进行选择。在这个索引运算符中要引用 df[]。

选择单个列

为了选择单个列,我们只需将列名放在括号之间

# importing pandas package
import pandas as pd

# 从csv文件制作数据框
data = pd.read_csv("nba.csv", index_col ="Name")

# 通过索引运算符检索列
first = data["Age"]

print(first)

输出:

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_Python_08

选择多个列

为了选择多个列,我们必须在索引运算符中传递列列表。

# importing pandas package
import pandas as pd

# 从csv文件制作数据框
data = pd.read_csv("nba.csv", index_col ="Name")

# 通过索引运算符检索多个列
first = data[["Age", "College", "Salary"]]

first

输出:

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_数据_09



使用 索引 DataFrame .loc[ ]

此函数通过行和列的标签选择数据。​df.loc​​索引器以不同于索引运算符的方式选择数据。它可以选择行或列的子集。它还可以同时选择行和列的子集。

选择单行

为了使用 选择单行,我们在函数​​.loc[]​​​中放置了单行标签。​​.loc​

# importing pandas package
import pandas as pd

# 从csv文件制作数据框
data = pd.read_csv("nba.csv", index_col ="Name")

# 通过 loc 方法检索行
first = data.loc["Avery Bradley"]
second = data.loc["R.J. Hunter"]


print(first, "\n\n\n", second)

输出:

如输出图像所示,由于两次都只有一个参数,因此返回了两个系列。

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_后端_10


选择多行

为了选择多行,我们将所有行标签放在一个列表中并将其传递给​​.loc​​函数。

import pandas as pd

# 从csv文件制作数据框
data = pd.read_csv("nba.csv", index_col ="Name")

# 通过 loc 方法检索多行
first = data.loc[["Avery Bradley", "R.J. Hunter"]]

print(first)

输出:

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_运算符_11


选择两行三列

为了选择两行和三列,我们选择要选择的两行和三列,并将其放在单独的列表中,如下所示:

Dataframe.loc[["row1", "row2"], ["column1", "column2", "column3"]]
import pandas as pd

# 从csv文件制作数据框
data = pd.read_csv("nba.csv", index_col ="Name")

# 通过loc方法检索两行三列
first = data.loc[["Avery Bradley", "R.J. Hunter"],
["Team", "Number", "Position"]]

print(first)

输出:

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_数据_12


选择所有行和一些列

为了选择所有的行和一些列,我们使用单冒号 [:] 来选择我们想要选择的所有行和一些列的列表,如下所示:

Dataframe.loc[:, ["column1", "column2", "column3"]]
import pandas as pd

# 从csv文件制作数据框
data = pd.read_csv("nba.csv", index_col ="Name")

# 通过 loc 方法检索所有行和某些列
first = data.loc[:, ["Team", "Number", "Position"]]

print(first)

输出:

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_运算符_13



使用 索引 DataFrame .iloc[ ]

此函数允许我们按位置检索行和列。为了做到这一点,我们需要指定我们想要的行的位置,以及我们想要的列的位置。索引器​​df.iloc ​​​非常相似,​​df.loc ​​但仅使用整数位置进行选择。

选择单行

为了使用 选择单行​​.iloc[]​​​,我们可以将单个整数传递给​​.iloc[]​​函数。

import pandas as pd

# 从csv文件制作数据框
data = pd.read_csv("nba.csv", index_col ="Name")


# 通过 iloc 方法检索行
row2 = data.iloc[3]

print(row2)

输出:

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_运算符_14


选择多行

为了选择多行,我们可以将整数列表传递给​​.iloc[]​​函数。

import pandas as pd

# 从csv文件制作数据框
data = pd.read_csv("nba.csv", index_col ="Name")


# 通过 iloc 方法检索多行
row2 = data.iloc [[3, 5, 7]]

row2

输出:

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_运算符_15


选择两行两列

为了选择两行和两列,我们为行创建一个包含 2 个整数的列表,为列创建一个包含 2 个整数的列表,然后传递给一个​​.iloc[]​​函数。

import pandas as pd

# 从csv文件制作数据框
data = pd.read_csv("nba.csv", index_col ="Name")


# 通过iloc方法检索两行两列
row2 = data.iloc [[3, 4], [1, 2]]

print(row2)

输出:

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_数据_16


选择所有行和一些列

为了选择所有行和一些列,我们使用单冒号 [:] 来选择所有行,对于列,我们制作一个整数列表,然后传递给一个​​.iloc[]​​函数。

import pandas as pd

# 从csv文件制作数据框
data = pd.read_csv("nba.csv", index_col ="Name")


# 通过 iloc 方法检索所有行和某些列
row2 = data.iloc [:, [1, 2]]

print(row2)

输出:

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_数据_17



使用 Dataframe.ix[ ]对 a 进行索引:

在 pandas 开发的早期,存在另一个索引器​​ix​​​. 该索引器能够按标签和整数位置进行选择。虽然它是通用的,但它引起了很多混乱,因为它不明确。有时整数也可以是行或列的标签。因此,在某些情况下它是模棱两可的。通常,​​ix​​它是基于标签的,并且充当 .loc索引器。但是,​​.ix​​​也支持传递整数的整数类型选择(如在 .iloc 中)。这仅适用于 DataFrame 的索引不是基于整数的​​.ix​​​情况,它将接受​​.loc​​​和的任何输入​​.iloc​​。

注意  .ix****indexer 在最新版本的 Pandas 中已被弃用。

​.ix[]​​​使用as选择单行​​.loc[]​

为了选择单行,我们在​​.ix​​函数中放置了单行标签。如果我们将行标签作为函数的参数传递,则此函数的行为类似于 .loc[]。

# importing pandas package
import pandas as pd

# 从csv文件制作数据框
data = pd.read_csv("nba.csv", index_col ="Name")

# 通过 ix 方法检索行
first = data.ix["Avery Bradley"]

print(first)

输出:

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_Python_18

​.ix[]​​​使用as选择单行​​.iloc[]​

为了选择单行,我们可以将一个整数传递给​​.ix[]​​​函数。如果我们在函数中传递整数,则此函数类似于 iloc[]​​.ix[]​​函数。

# importing pandas package
import pandas as pd

# 从csv文件制作数据框
data = pd.read_csv("nba.csv", index_col ="Name")

# 通过 ix 方法检索行
first = data.ix[1]

print(first)

输出:

Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据_后端_19


DataFrame中的索引方法

功能

描述

Dataframe.head()

返回数据框的顶部​​ n​​行。

Dataframe.tail()

返回数据框的底部​​n​​行。

[]

访问行/列标签对的单个值。

Dataframe.iat[]

按整数位置访问行/列对的单个值。

Dataframe.tail()

纯粹基于整数位置的索引,用于按位置进行选择。

DataFrame.lookup()

DataFrame 的基于标签的“精美索引”功能。

DataFrame.pop()

返回项目并从框架中删除。

DataFrame.xs()

从 DataFrame 返回横截面(行或列)。

DataFrame.get()

从给定键的对象中获取项目(DataFrame 列、Panel 切片等)。

DataFrame.isin()

返回布尔数据帧,显示数据帧中的每个元素是否包含在值中。

DataFrame.where()

返回一个与 self 形状相同的对象,其对应的条目来自 self ,其中 cond 为 True ,否则来自 other 。

DataFrame.mask()

返回一个与 self 形状相同的对象,其对应条目来自 self ,其中 cond 为 False ,否则来自 other 。

DataFrame.query()

使用布尔表达式查询框架的列。

DataFrame.insert()

在指定位置将列插入 DataFrame。