📌  相关文章
📜  根据索引过滤 Pandas DataFrame(1)

📅  最后修改于: 2023-12-03 14:55:40.013000             🧑  作者: Mango

根据索引过滤 Pandas DataFrame

Pandas是一个用于数据分析的开源Python库。它提供了许多功能和工具,可以轻松处理和操作数据。DataFrame是Pandas库中的一个基本数据结构,类似于电子表格,可以存储和处理大量数据。

在使用Pandas时,有时需要根据索引过滤DataFrame。本文将介绍如何根据索引过滤Pandas DataFrame,包括单个索引、多个索引和布尔索引。

单个索引

使用.loc方法可以根据单个索引过滤DataFrame。.loc方法需要传入一个索引,它会返回所有与该索引匹配的行。

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 30, 35, 40],
        'country': ['US', 'Canada', 'UK', 'Australia']}

df = pd.DataFrame(data, index=['A', 'B', 'C', 'D'])
print(df)

#  输出:
#        name  age    country
#     A  Alice   25         US
#     B    Bob   30     Canada
#     C    Charlie   35         UK
#     D    David   40  Australia

# 根据索引过滤DataFrame
print(df.loc['C'])

# 输出:
# name       Charlie
# age             35
# country         UK
# Name: C, dtype: object

可以看到,通过传入一个索引'C',我们可以得到与索引匹配的那一行数据。

多个索引

在一些情况下,可能需要根据多个索引过滤DataFrame。可以使用.loc方法并传入一个索引列表。

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 30, 35, 40],
        'country': ['US', 'Canada', 'UK', 'Australia']}

df = pd.DataFrame(data, index=['A', 'B', 'C', 'D'])
print(df)

#  输出:
#        name  age    country
#     A  Alice   25         US
#     B    Bob   30     Canada
#     C    Charlie   35         UK
#     D    David   40  Australia

# 根据多个索引过滤DataFrame
print(df.loc[['A', 'C']])

#  输出:
#       name  age country
#    A  Alice   25      US
#    C  Charlie   35      UK

可以发现,通过传入索引列表['A', 'C'],我们获得了两行数据,分别是与索引'A'和'C'匹配的那些行。

布尔索引

布尔索引是指根据条件过滤DataFrame。可以使用布尔索引来过滤DataFrame。其实现方式是,首先从DataFrame中选择一个列,并应用一个运算符来得到一个布尔值,然后使用这个布尔值来选择那些为True的行。

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 30, 35, 40],
        'country': ['US', 'Canada', 'UK', 'Australia']}

df = pd.DataFrame(data, index=['A', 'B', 'C', 'D'])
print(df)

#  输出:
#         name  age    country
#     A  Alice   25         US
#     B    Bob   30     Canada
#     C  Charlie   35         UK
#     D   David   40  Australia

# 使用布尔索引过滤DataFrame
print(df[df['age'] > 30])

# 输出:
#         name  age    country
#     C  Charlie   35         UK
#     D   David   40  Australia

在这个例子中,我们选择了'age'这一列,并使用了条件运算符>得到了一个布尔值。然后,我们使用这个布尔值来过滤那些'age'列中值大于30的行。

这就是如何根据索引过滤Pandas DataFrame的方法,包括单个索引、多个索引和布尔索引。这些方法可以帮助你轻松过滤和操作DataFrame中的数据。更多关于Pandas的详细信息和用法,请参阅官方文档。