📜  Pandas DataFrame 列的条件操作(1)

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

Pandas DataFrame 列的条件操作

在使用 Pandas 进行数据分析时,经常会遇到需要根据列的条件进行操作和过滤的情况。Pandas 提供了丰富的方法来实现这样的操作,本文将介绍常用的几种方法。

1. 使用布尔索引

布尔索引是通过对 DataFrame 中的列应用条件运算符生成的布尔值 Series。可以使用布尔索引从 DataFrame 中选择满足特定条件的行。

import pandas as pd

# 创建示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 35, 40],
        'Salary': [5000, 6000, 7000, 8000]}
df = pd.DataFrame(data)

# 使用布尔索引选择年龄大于等于 30 的行
filtered_df = df[df['Age'] >= 30]
print(filtered_df)

输出:

| | Name | Age | Salary | |---:|:--------|----:|-------:| | 1 | Bob | 30 | 6000 | | 2 | Charlie | 35 | 7000 | | 3 | David | 40 | 8000 |

2. 使用 query 方法

query() 方法允许你使用类似 SQL 语句的表达式来筛选 DataFrame。可以使用该方法根据列的条件进行过滤。

import pandas as pd

# 创建示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 35, 40],
        'Salary': [5000, 6000, 7000, 8000]}
df = pd.DataFrame(data)

# 使用 query 方法选择年龄大于等于 30 的行
filtered_df = df.query('Age >= 30')
print(filtered_df)

输出:

| | Name | Age | Salary | |---:|:--------|----:|-------:| | 1 | Bob | 30 | 6000 | | 2 | Charlie | 35 | 7000 | | 3 | David | 40 | 8000 |

3. 使用 loc 方法

loc 方法允许你通过标签来选择 DataFrame 的行和列。可以使用 loc 方法根据列的条件进行过滤。

import pandas as pd

# 创建示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 35, 40],
        'Salary': [5000, 6000, 7000, 8000]}
df = pd.DataFrame(data)

# 使用 loc 方法选择年龄大于等于 30 的行
filtered_df = df.loc[df['Age'] >= 30]
print(filtered_df)

输出:

| | Name | Age | Salary | |---:|:--------|----:|-------:| | 1 | Bob | 30 | 6000 | | 2 | Charlie | 35 | 7000 | | 3 | David | 40 | 8000 |

4. 使用 where 方法

where() 方法返回一个与原始 DataFrame 结构相同的新 DataFrame,其中不满足条件的元素将被替换为 NaN。

import pandas as pd

# 创建示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 35, 40],
        'Salary': [5000, 6000, 7000, 8000]}
df = pd.DataFrame(data)

# 使用 where 方法选择年龄大于等于 30 的行
filtered_df = df.where(df['Age'] >= 30)
print(filtered_df)

输出:

| | Name | Age | Salary | |---:|:--------|----:|-------:| | 0 | NaN | NaN | NaN | | 1 | Bob | 30 | 6000 | | 2 | Charlie | 35 | 7000 | | 3 | David | 40 | 8000 |

以上是几种常用的 Pandas DataFrame 列的条件操作方法。根据实际需求选择合适的方法,可以轻松地过滤和操作 DataFrame 中的数据。