📜  使用索引列表过滤数据框 - Python (1)

📅  最后修改于: 2023-12-03 15:22:25.880000             🧑  作者: Mango

使用索引列表过滤数据框 - Python

介绍

在处理数据框时,经常需要根据列名或行索引来过滤数据。我们可以使用索引列表来选择想要的行或列。本文将介绍如何使用索引列表来过滤数据框。

使用索引列表选择列

我们可以使用 iloc 属性和索引列表来选择想要的列。 iloc 属性用来通过整数位置来选择行或列。

假设我们有以下数据框 df

import pandas as pd

data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 20, 30, 35],
    'gender': ['F', 'M', 'M', 'M']
}

df = pd.DataFrame(data)

现在我们想选择 namegender 两列。我们可以使用以下代码:

cols = [0, 2]  # 索引列表

df_filter = df.iloc[:, cols]  # 选择特定列

print(df_filter)

输出:

       name gender
0     Alice      F
1       Bob      M
2   Charlie      M
3     David      M

iloc 中,第一个参数为行索引,第二个参数为列索引。如果我们想要选择所有行,那么可以使用 : 来表示所有行。

cols 列表中的元素为整数,分别代表要选择的列的位置。在本例中,我们选择第 1 列和第 3 列,也就是 namegender 列。注意索引从 0 开始。

使用索引列表选择行

我们可以使用 iloc 属性和索引列表来选择想要的行。与选择列一样,我们可以使用 : 来选择所有列。

假设我们有以下数据框 df

import pandas as pd

data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 20, 30, 35],
    'gender': ['F', 'M', 'M', 'M']
}

df = pd.DataFrame(data)

现在我们想选择第 1 到第 2 行。我们可以使用以下代码:

rows = [1, 2]  # 索引列表

df_filter = df.iloc[rows, :]  # 选择特定行

print(df_filter)

输出:

       name  age gender
1       Bob   20      M
2   Charlie   30      M

iloc 中,第一个参数为行索引,第二个参数为列索引。如果我们想要选择所有列,那么可以使用 : 来表示所有列。

rows 列表中的元素为整数,分别代表要选择的行的位置。在本例中,我们选择第 1 行和第 2 行,也就是 BobCharlie 行。注意索引从 0 开始。

结论

我们可以使用索引列表来选择数据框中的特定行或列。使用 iloc 属性和索引列表,我们可以根据整数位置来选择行或列。在选择列时, : 表示所有行;在选择行时, : 表示所有列。