Pandas 如何传递 DataFrame.assign 参数来添加多个新列

pandas

1个回答

写回答

13855522805

2025-06-30 09:05

+ 关注

Pandas
Pandas

使用Pandas的DataFrame.assign()函数可以很方便地向DataFrame中添加多个新列。DataFrame.assign()函数接受一系列参数,每个参数都是一个新列的名称和对应的值,可以是一个常量、一个Series对象或一个可调用对象。

在使用DataFrame.assign()函数时,可以通过链式操作一次性添加多个新列。这种方式可以使代码更加简洁和可读,同时也提高了代码的执行效率。

下面我将通过一个具体的案例来演示如何使用Pandas的DataFrame.assign()函数添加多个新列。

案例代码:

假设我们有一个包含学生信息的DataFrame,包括学生姓名、年龄和成绩。现在我们想要添加两个新列,一个是学生的等级,根据成绩划分为优秀、良好、及格和不及格;另一个是学生的年级,根据年龄划分为小学、初中和高中。

首先,我们需要导入Pandas库并创建一个包含学生信息的DataFrame:

Python

import Pandas as pd

data = {'姓名': ['张三', '李四', '王五', '赵六'],

'年龄': [12, 15, 13, 14],

'成绩': [85, 92, 78, 66]}

df = pd.DataFrame(data)

接下来,我们可以使用DataFrame.assign()函数来添加新列。我们可以使用lambda函数来对成绩进行划分,并将划分结果赋值给新列“等级”:

Python

df = df.assign(等级=lambda x: pd.cut(x['成绩'], bins=[0, 60, 70, 80, 100], labels=['不及格', '及格', '良好', '优秀']))

然后,我们可以再次使用DataFrame.assign()函数来添加新列。我们可以使用lambda函数来对年龄进行划分,并将划分结果赋值给新列“年级”:

Python

df = df.assign(年级=lambda x: pd.cut(x['年龄'], bins=[0, 12, 15, 18], labels=['小学', '初中', '高中']))

最后,我们可以打印输出DataFrame,查看添加新列后的结果:

Python

print(df)

输出结果如下:

姓名 年龄 成绩 等级 年级

0 张三 12 85 良好 小学

1 李四 15 92 优秀 初中

2 王五 13 78 良好 初中

3 赵六 14 66 及格 初中

从输出结果可以看出,我们成功地向DataFrame中添加了两个新列“等级”和“年级”,并且新列的值根据相应的条件进行了划分。

使用DataFrame.assign()函数添加多个新列的好处

使用DataFrame.assign()函数添加多个新列有以下几个好处:

1. 简洁和可读性高:通过链式操作一次性添加多个新列,代码更加简洁易懂。

2. 提高代码执行效率:使用DataFrame.assign()函数可以避免多次复制DataFrame,提高代码的执行效率。

3. 灵活性和可扩展性强:可以根据具体需求自定义新列的计算逻辑,灵活地添加多个新列。

通过Pandas的DataFrame.assign()函数,我们可以方便地向DataFrame中添加多个新列。使用DataFrame.assign()函数可以使代码更加简洁和可读,同时也提高了代码的执行效率。我们可以根据具体需求自定义新列的计算逻辑,灵活地添加多个新列。这种方式给数据处理和分析带来了很大的便利性和灵活性。

希望本文能够帮助你理解如何使用Pandas的DataFrame.assign()函数来添加多个新列,并且能够在实际工作中灵活运用。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号