📜  Pandas 条件列 - Python (1)

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

Pandas 条件列 - Python

介绍

在处理数据时,经常需要根据某些条件对数据进行筛选或者创建新的列。Pandas 是一个强大的数据处理库,提供了丰富的功能来处理条件列。条件列允许我们根据指定的条件生成新的列。

本文将介绍如何使用 Pandas 在 Python 中创建条件列。

准备工作

在开始之前,请先确保已经安装了 Pandas 包。可以使用以下命令安装:

pip install pandas

导入 Pandas 包:

import pandas as pd
示例数据

为了演示如何创建条件列,我们先创建一个示例数据集。

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
        'Age': [25, 30, 35, 40, 45],
        'Gender': ['Female', 'Male', 'Male', 'Male', 'Female'],
        'Salary': [50000, 60000, 70000, 80000, 90000]}

df = pd.DataFrame(data)
创建条件列
基本条件

条件列的创建可以通过多种方式实现。最常用的方式是使用 df['New Column'] = condition 的形式,其中 condition 为一个布尔类型的序列。

以下示例将根据年龄是否大于等于 35 来创建一个名为 Senior 的条件列:

df['Senior'] = df['Age'] >= 35

# 输出结果
df.head()

|    | Name    |   Age | Gender   |   Salary | Senior |
|---:|:--------|------:|:---------|---------:|-------:|
|  0 | Alice   |    25 | Female   |    50000 |  False |
|  1 | Bob     |    30 | Male     |    60000 |  False |
|  2 | Charlie |    35 | Male     |    70000 |  False |
|  3 | David   |    40 | Male     |    80000 |   True |
|  4 | Eve     |    45 | Female   |    90000 |   True |
复杂条件

除了基本的条件判断,我们还可以根据多个条件的组合来创建条件列。

例如,我们希望根据性别和薪资来创建一个名为 High Earner 的条件列,当同时满足以下两个条件时,列的值为 True,否则为 False

  • 性别为女性
  • 薪资大于 70000
df['High Earner'] = (df['Gender'] == 'Female') & (df['Salary'] > 70000)

# 输出结果
df.head()

|    | Name    |   Age | Gender   |   Salary | Senior   | High Earner   |
|---:|:--------|------:|:---------|---------:|---------:|--------------:|
|  0 | Alice   |    25 | Female   |    50000 |  False   | False         |
|  1 | Bob     |    30 | Male     |    60000 |  False   | False         |
|  2 | Charlie |    35 | Male     |    70000 |  False   | False         |
|  3 | David   |    40 | Male     |    80000 |   True   | False         |
|  4 | Eve     |    45 | Female   |    90000 |   True   | True          |
使用函数创建条件列

除了使用逻辑运算符,我们还可以使用自定义函数作为条件来创建条件列。

例如,我们希望根据名字的长度来判断是否为较长的名字,并将结果存储在名为 Long Name 的条件列中:

def is_long_name(name):
    return len(name) > 5

df['Long Name'] = df['Name'].apply(is_long_name)

# 输出结果
df.head()

|    | Name    |   Age | Gender   |   Salary | Senior   | High Earner   | Long Name   |
|---:|:--------|------:|:---------|---------:|---------:|--------------:|------------:|
|  0 | Alice   |    25 | Female   |    50000 |  False   | False         | False       |
|  1 | Bob     |    30 | Male     |    60000 |  False   | False         | False       |
|  2 | Charlie |    35 | Male     |    70000 |  False   | False         | False       |
|  3 | David   |    40 | Male     |    80000 |   True   | False         | False       |
|  4 | Eve     |    45 | Female   |    90000 |   True   | True          | False       |
结论

本文介绍了如何使用 Pandas 在 Python 中创建条件列。无论是简单条件还是复杂条件,使用 Pandas 创建条件列可以方便地对数据进行筛选和分析,提高数据处理效率。

以上就是 Pandas 条件列的介绍,希望对程序员们有所帮助!

请注意,以上代码片段使用的 Markdown 标记,以便于将代码和结果显示为易读的格式。