📜  pandas 过滤值范围 - Python (1)

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

pandas 过滤值范围 - Python

在Python中,pandas是一个强大的数据分析库,提供了许多用于数据处理和分析的功能。其中之一是过滤数据框中满足特定值范围的行或列。

过滤行

要过滤数据框中满足特定值范围的行,可以使用DataFrame.loc方法利用布尔条件进行筛选。

假设我们有一个名为df的数据框,其中包含一个名为column_name的列。我们可以使用以下代码过滤出column_name列中满足特定值范围的行:

df_filtered = df.loc[(df['column_name'] >= start_value) & (df['column_name'] <= end_value)]

这里,start_valueend_value是指定值范围的开始和结束值。&用于代表“和”,起到逻辑与的作用。

过滤后的结果将存储在df_filtered中。

过滤列

要过滤数据框中特定值范围的列,可以使用DataFrame.loc方法并指定从特定列中选择的值范围。

假设我们有一个名为df的数据框,其中包含多个列。我们可以使用以下代码过滤出满足特定值范围的列:

columns_filtered = df.loc[:, (df >= start_value) & (df <= end_value)].columns

这里,start_valueend_value是指定值范围的开始和结束值。:用于表示选择所有行,.用于指定列的过滤条件,columns用于获取过滤后的列名。

过滤后的结果列名将存储在columns_filtered中。

示例

下面是一个完整的示例,用于演示如何使用pandas过滤值范围:

import pandas as pd

# 创建示例数据框
data = {'Name': ['John', 'Emma', 'Mike', 'Sarah'],
        'Age': [28, 24, 32, 29]}
df = pd.DataFrame(data)

# 过滤年龄在25到30之间的行
df_filtered = df.loc[(df['Age'] >= 25) & (df['Age'] <= 30)]
print(df_filtered)

# 过滤年龄在25到30之间的列
columns_filtered = df.loc[:, (df >= 25) & (df <= 30)].columns
print(columns_filtered)

这段代码中,我们创建了一个包含姓名和年龄的数据框,并使用过滤条件筛选出年龄在25到30之间的行和列。

运行上述代码会输出以下结果:

    Name  Age
0   John   28
3  Sarah   29
Index(['Age'], dtype='object')

通过这个例子,你可以学会如何使用pandas过滤值范围来处理数据框中的行和列。这些方法的灵活性使得数据分析和处理变得更加简单和高效。