Pandas 根据if-elif-else条件创建新列
在本文中,我们将介绍如何使用Pandas在DataFrame中创建一个新列,并且该列的值基于if-elif-else条件语句。
在进行讲解之前,我们先来创建一个名为“employees”的DataFrame,其中包含三列数据:姓名、性别、排名。
import pandas as pd
df = pd.DataFrame({
'Name': ['Tom', 'Jerry', 'Alice', 'Mary'],
'Gender': ['Male', 'Male', 'Female', 'Female'],
'Rank': [2, 4, 6, 8]
})
现在,我们想根据性别和排名来创建一个新列“评级”,如果是男性且排名在前两名,则评级为“优秀”,如果是女性且排名在前三名,则评级为“优秀”,否则评级为“良好”。下面是我们如何用if-elif-else条件语句在Pandas中实现:
def rank_employee(row):
if (row['Gender'] == 'Male') & (row['Rank'] <= 2):
return '优秀'
elif (row['Gender'] == 'Female') & (row['Rank'] <= 3):
return '优秀'
else:
return '良好'
df['评级'] = df.apply(rank_employee, axis=1)
在这个例子中,我们使用了apply函数将rank_employee函数应用于DataFrame的每一行。apply函数的axis参数设置为1表示按行应用函数。
现在,我们来打印一下“employees”DataFrame,看看我们是否成功创建了新列:
print(df)
输出:
Name Gender Rank 评级
0 Tom Male 2 优秀
1 Jerry Male 4 良好
2 Alice Female 6 良好
3 Mary Female 8 良好
如我们所期望的一样,“评级”列已成功地添加到DataFrame中,并且每个员工都被正确评级。
阅读更多:Pandas 教程
总结
Pandas是一个非常强大和灵活的数据分析工具,可以帮助我们快速和方便地处理数据。在本文中,我们学习了如何使用if-elif-else条件语句在Pandas中创建一个新列,并且通过一个具体的例子来演示了如何使用apply函数对每一行数据进行操作。如果您还有其他关于Pandas的问题或需要更多的练习,请访问Pandas官方文档和教程。
极客教程