📜  用于列表的 pandas loc - Python (1)

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

用于列表的 Pandas loc - Python

在 Pandas 中,我们可以使用 loc 函数来选择我们想要的数据。它可以根据标签名称来选择行和列,也可以使用布尔表达式来筛选数据。在这篇文章中,我们将重点介绍 loc 函数,并讲解它在 list 类型数据上的应用。

使用 loc 函数选择行和列

以下是 loc 函数在 Pandas DataFrame 中选择行和列的语法:

dataframe.loc[row_indexer,column_indexer]

其中,row_indexer 和 column_indexer 可以有以下三种类型:

  • 标量或列表(或配对元组)。对于标量,结果是一个 Series。对于列表或配对元组,结果是一个 DataFrame。
  • 切片对象。对于行切片,结果是一个 DataFrame,而对于列切片,结果是一个 Series。
  • 布尔向量。结果是一个与 DataFrame 或 Series 条目数量相同的布尔向量。

下面是一个简单的 Pandas DataFrame 示例:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 32, 18, 47],
        'gender': ['F', 'M', 'M', 'M'],
        'height': [165.2, 176.1, 158.4, 182.0],
        'weight': [58.6, 77.0, 56.2, 84.6],
        'income': [55000, 65000, 43000, 98000]}

df = pd.DataFrame(data)

我们可以使用 loc 函数来选择数据。例如,我们可以选择 Bob 的所有信息:

df.loc[1,:]

这将输出:

name        Bob
age          32
gender        M
height    176.1
weight       77
income    65000
Name: 1, dtype: object

在这种情况下,我们只选择了一个行标签(即 row_indexer)1 和一个列标签(即 column_indexer):。它返回了一个 Pandas Series。

选择多个行和列

我们可以使用列表或切片器来选择多个行和列。例如,我们可以选择 David 和 Charlie 的数据的所有列:

df.loc[[2,3],:]

这将输出:

       name  age gender  height  weight  income
2  Charlie   18      M   158.4    56.2   43000
3    David   47      M   182.0    84.6   98000

这里我们选择了行标签 2 和 3,和所有列。它返回了一个 DataFrame。

使用布尔表达式进行数据筛选

我们可以使用布尔表达式来筛选数据。例如,我们可以选择身高少于 175 厘米的人:

df.loc[df['height'] < 175,:]

这将输出:

      name  age gender  height  weight  income
0    Alice   25      F   165.2    58.6   55000
2  Charlie   18      M   158.4    56.2   43000

在这种情况下,我们选择了所有行和所有列,其中行必须满足 df['height'] < 175 的条件。它返回了一个 DataFrame。

总结

在这篇文章中,我们介绍了 loc 函数和其在 list 类型数据上的应用。loc 函数可以根据标签名称来选择行和列,也可以使用布尔表达式来筛选数据。对于 Pandas DataFrame 中的其他用法,可以请参阅 Pandas 官方文档。