Pandas 如何使用条件从现有列中创建一个新的DataFrame列

Pandas 如何使用条件从现有列中创建一个新的DataFrame列

在处理数据时,经常需要根据某个列的值来创建一个新的列。这在Pandas中非常容易实现。我们可以使用DataFrame的内置方法来进行条件判断,并使用apply方法将结果应用到新列中。

阅读更多:Pandas 教程

1. 创建一个示例DataFrame

首先,让我们创建一个示例的DataFrame来演示如何创建新的列。假设我们有一个包含学生信息的DataFrame,其中包含学生的姓名、成绩和出生日期。我们将根据学生的成绩来创建一个新的列,将成绩大于等于80分的学生标记为”优秀”,其余的标记为”良好”。

import pandas as pd

data = {'姓名': ['张三', '李四', '王五', '赵六', '钱七'],
        '成绩': [85, 70, 92, 78, 88],
        '出生日期': ['2000-01-01', '1999-05-10', '2002-03-15', '2001-08-20', '2003-02-28']}

df = pd.DataFrame(data)
Python

现在我们有一个包含学生信息的DataFrame df,如下所示:

姓名 成绩 出生日期
张三 85 2000-01-01
李四 70 1999-05-10
王五 92 2002-03-15
赵六 78 2001-08-20
钱七 88 2003-02-28

2. 使用条件创建新列

现在,让我们根据学生的成绩创建一个新的列,将成绩大于等于80分的学生标记为”优秀”,其余的标记为”良好”。我们可以使用apply方法结合条件判断来实现这个目标。

以下是示例代码:

def mark_grade(score):
    if score >= 80:
        return '优秀'
    else:
        return '良好'

df['成绩等级'] = df['成绩'].apply(mark_grade)
Python

代码解释:

  • mark_grade是一个自定义的函数,接受一个参数score,根据分数判断并返回成绩等级。
  • df['成绩'].apply(mark_grade)mark_grade函数应用到df['成绩']列的每个元素上,得到一个新的Series。
  • 最后,将这个新的Series赋值给DataFrame的新列成绩等级

3. 查看结果

现在,我们可以查看经过条件判断创建的新列成绩等级

使用下面的代码来打印DataFrame的内容:

print(df)
Python

输出结果如下:

   姓名  成绩       出生日期 成绩等级
0  张三  85  2000-01-01   优秀
1  李四  70  1999-05-10   良好
2  王五  92  2002-03-15   优秀
3  赵六  78  2001-08-20   良好
4  钱七  88  2003-02-28   优秀
Python

可以看到,新的列成绩等级已经成功创建,并通过条件判断为每个学生分配了对应的成绩等级。

总结

在本文中,我们介绍了如何使用条件从现有列中创建一个新的DataFrame列。首先,我们创建了一个示例DataFrame来演示如何创建新的列。然后,我们使用apply方法结合条件判断来实现这个目标。最后,我们查看了经过条件判断创建的新列的结果。

使用Pandas的apply方法可以很方便地从现有的列中创建新的列,并根据条件进行判断。上述示例中,我们使用了一个自定义的函数mark_grade来判断学生的成绩等级,并将结果应用到新的列中。你可以根据自己的需求和条件来定义不同的函数。

除了使用apply方法,还可以使用其他方法来创建新列,例如numpy.wherenp.select等。这些方法也可以根据条件来进行判断,并将结果应用到新的列中。

import numpy as np

# 使用numpy的where方法创建新列
df['成绩等级'] = np.where(df['成绩'] >= 80, '优秀', '良好')

# 使用numpy的select方法创建新列
conditions = [df['成绩'] >= 80, df['成绩'] < 80]
choices = ['优秀', '良好']
df['成绩等级'] = np.select(conditions, choices)
Python

在使用这些方法时,你需要根据具体的条件和要求选择合适的方法。

总之,使用Pandas可以很方便地根据条件从现有列中创建新的列。你可以根据自己的需求定义条件和函数,并使用apply方法或其他方法来实现这个目标。这样可以使数据处理更加灵活和高效。

希望本文对你理解如何使用条件从现有列中创建新的DataFrame列有所帮助!如果你还有任何问题,请随时提问。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册