python的assign函数使用方法

  • Post category:Python

Python中的assign()函数是在Pandas库中的Series和DataFrame对象中使用的函数,用于将一定的值分配给一个指定区域,返回一个经过修改的新的对象,并同时修改原对象。以下是assign()函数的详细使用方法:

assign()函数基本语法

DataFrame.assign(**kwargs)

其中,**kwargs表示以字典形式关键字为列名,值为Series、数组或可调用的函数对象。

参数说明

kwargs:字典形式,字典的键为新创建的列名,值为DataFrame或Series或某个可以转换为它们的对象。

返回值

返回一个新的由原对象(Series或DataFrame)和新赋值的列组成的DataFrame对象,并同时修改原对象。

实例1:在DataFrame对象中使用assign()函数

我们首先构造一个DataFrame对象,然后使用assign()函数添加两列数据。

import pandas as pd

data = {'name':['Lisa', 'Adam', 'Bart'], 'age':[20, 21, 19]}
df = pd.DataFrame(data)
print('原始DataFrame:', df)

df_with_rank = df.assign(rank=[1, 2, 3], score=[90, 80, 75])
print('新增列的DataFrame:', df_with_rank)

运行以上代码可以看到输出结果:

原始DataFrame:    name  age
0  Lisa   20
1  Adam   21
2  Bart   19

新增列的DataFrame:    name  age  rank  score
0  Lisa   20     1     90
1  Adam   21     2     80
2  Bart   19     3     75

可以看出,原始DataFrame只有nameage两列,使用assign()函数新添加了rankscore两列数据。

实例2:在Series对象中使用assign()函数

我们同样可以在Series对象中使用assign()函数,下面的例子展示了如何将两个Series进行合并。

import pandas as pd

s1 = pd.Series([1, 2, 3])
s2 = pd.Series([4, 5, 6, 7])

s_new = s1.assign(s2=s2)
print('新的Series对象:',s_new)

运行以上代码可以看到输出结果:

新的Series对象: 0    1
1    2
2    3
Name: s1, dtype: int64   s2    4
0     5
1     6
2     7
dtype: int64

可以看到,原始的s1对象被修改并新增了s2列,s2列来自于新建的s2 Series对象。这个示例真的非常简单,但是在一些复杂的数据处理场景中,这种用法是非常有用的。

以上便是assign()函数的用法及简单实例。