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()
函数向数据框中添加计算列。我们还演示了如何定义自己的函数来进行复杂的计算,并讨论了如何向数据框中添加多个计算列。通过这些技巧,您可以轻松地扩展和调整数据框,以执行各种数据分析任务。