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只有name
和age
两列,使用assign()函数新添加了rank
和score
两列数据。
实例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()函数的用法及简单实例。