Pandas 向数据框添加计算列

Pandas 向数据框添加计算列

在本文中,我们将介绍如何使用Pandas库向数据框添加计算列。Pandas是一个用于数据分析的Python库,它包含了许多高效且易于使用的函数和方法。其中一个重要的功能就是能够方便地添加计算列,以便进行数据处理和分析。

阅读更多:Pandas 教程

Pandas数据框

在Pandas中,数据框是一个二维的表格结构。每个数据框都由行和列组成。行是数据框中的观察结果,列是数据框中的变量。要创建一个数据框,我们可以使用Pandas的DataFrame()函数。下面是一个简单的例子:

import pandas as pd

df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'], 
                   'Age': [25, 30, 35],
                   'Salary': [50000, 60000, 70000]})
print(df)

这将创建以下数据框:

       Name  Age  Salary
0     Alice   25   50000
1       Bob   30   60000
2   Charlie   35   70000

添加计算列

要向数据框中添加计算列,我们必须首先定义计算的规则,并将其应用于数据框的某些列中。我们可以使用apply()函数将任何函数应用于数据框中的列。例如,假设我们有以下数据框:

import pandas as pd

df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'], 
                   'Age': [25, 30, 35],
                   'Salary': [50000, 60000, 70000]})
print(df)

这将创建以下数据框:

       Name  Age  Salary
0     Alice   25   50000
1       Bob   30   60000
2   Charlie   35   70000

现在,假设我们想要添加一个名为“Annual Salary”的计算列,其中包含每个员工的年薪。我们可以使用以下代码:

df['Annual Salary'] = df['Salary'] * 12
print(df)

这将创建以下数据框:

       Name  Age  Salary  Annual Salary
0     Alice   25   50000         600000
1       Bob   30   60000         720000
2   Charlie   35   70000         840000

这里,我们使用了apply()函数来应用乘法运算符(即*)以计算每个员工的年薪。然后,我们将计算列添加到数据框中,使其成为一个新的列。

更复杂的计算

有时候,在计算列时,我们需要进行更复杂的计算。在这种情况下,我们可以编写一个自定义函数并将其应用于数据框中的列。例如,假设我们想要添加一个名为“Age Group”的计算列,该列根据员工的年龄将其分为不同的年龄组。我们可以编写以下函数:

def age_group(age):
    if age < 30:
        return 'Young'
    elif age >= 30 and age < 40:
        return 'Middle-aged'
    else:
        return 'Old'

这个函数将使用员工的年龄作为输入,并根据其年龄将其分为三个不同的年龄组。现在,我们可以使用apply()函数应用此函数并将结果添加到数据框中:

df['Age Group'] = df['Age'].apply(age_group)
print(df)

这将创建以下数据框:

       Name  Age  Salary  Annual Salary    Age Group
0     Alice   25   50000         600000        Young
1       Bob   30   60000         720000  Middle-aged
2   Charlie   35   70000         840000 

多个计算列

有时候,我们需要向数据框中添加多个计算列。在这种情况下,我们可以连续地应用多个函数。例如,假设我们想要添加一个名为“Bonus”的计算列,该列包含每个员工的奖金,并向数据框添加一个名为“Total Pay”的计算列,该列包含每个员工的总薪资(包括奖金和年薪)。我们可以使用以下代码:

def calculate_bonus(row):
    if row['Age Group'] == 'Young':
        return row['Salary'] * 0.1
    elif row['Age Group'] == 'Middle-aged':
        return row['Salary'] * 0.15
    else:
        return row['Salary'] * 0.2

df['Bonus'] = df.apply(calculate_bonus, axis=1)
df['Total Pay'] = df['Salary'] + df['Annual Salary'] + df['Bonus']
print(df)

这将创建以下数据框:

       Name  Age  Salary  Annual Salary    Age Group    Bonus  Total Pay
0     Alice   25   50000         600000        Young   5000.0   655000.0
1       Bob   30   60000         720000  Middle-aged   9000.0   787000.0
2   Charlie   35   70000         840000          Old  14000.0   954000.0

在这里,我们首先定义了一个名为“calculate_bonus”的函数,该函数根据员工的年龄组计算其奖金。我们然后使用apply()函数将此函数应用于数据框中的每一行。使用“axis=1”参数表示我们希望将函数应用于行而不是列。

然后,我们将“Bonus”列添加到数据框中。接下来,我们将“Salary”、“Annual Salary”和“Bonus”列相加,并将结果存储在一个名为“Total Pay”的新计算列中。

总结

在本文中,我们介绍了如何使用Pandas向数据框添加计算列。我们首先讨论了Pandas数据框的基础,并阐述了如何使用apply()函数向数据框中添加计算列。我们还演示了如何定义自己的函数来进行复杂的计算,并讨论了如何向数据框中添加多个计算列。通过这些技巧,您可以轻松地扩展和调整数据框,以执行各种数据分析任务。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程