📜  根据条件切片数据框熊猫 - Python (1)

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

根据条件切片数据框熊猫 - Python

在数据分析中,我们经常需要从数据集中按照某些条件去筛选我们需要的数据。在Python的pandas库中,我们可以使用Boolean Indexing和loc方法来完成这一操作。

Boolean Indexing

Boolean Indexing是一种利用布尔值来进行筛选的方法。我们首先需要按照条件生成一个布尔数组,然后将其传入数据集中即可。

例如,我们有如下数据集:

import pandas as pd

data = {'name': ['Mike', 'Sarah', 'Joe', 'Bob', 'Lisa'],
        'age': [25, 28, 22, 24, 27],
        'gender': ['M', 'F', 'M', 'M', 'F'],
        'married': [False, True, False, False, False]}

df = pd.DataFrame(data)

我们想要筛选出年龄大于等于25岁的人,可以使用以下代码:

filter = df['age'] >= 25
df_filtered = df[filter]

这里,我们首先生成了一个布尔数组filter,它的每个元素都是True或False。接着,我们将布尔数组传入数据集中,得到一个新的数据集df_filtered。其中,只有对应位置为True的元素才会被保留下来。

loc方法

除了Boolean Indexing,我们还可以使用pandas的loc方法。这一方法可以根据标签来选择数据。

例如,我们有如下数据集:

import pandas as pd

data = {'name': ['Mike', 'Sarah', 'Joe', 'Bob', 'Lisa'],
        'age': [25, 28, 22, 24, 27],
        'gender': ['M', 'F', 'M', 'M', 'F'],
        'married': [False, True, False, False, False]}

df = pd.DataFrame(data)
df.set_index('name', inplace=True)

我们想要筛选出年龄大于等于25岁的人,可以使用以下代码:

df_filtered = df.loc[df['age'] >= 25]

这里,我们使用了loc方法,并且传入了一个布尔数组df['age'] >= 25作为行索引。loc方法会返回一个新的数据集df_filtered,其中只有年龄大于等于25岁的数据被保留下来。

总结

无论是Boolean Indexing还是loc方法,它们都可以用来根据条件切片数据框。Boolean Indexing需要使用布尔数组来完成,而loc方法则可以使用标签。在使用时,我们需要根据情况选择合适的方法。