python的assign函数使用方法

  • Post category:Python

assign是pandas包中的一个函数,用于给DataFrame赋值,其具体使用方法如下:

df.assign(col1= lambda x: x['col2']+ x['col3'])

该函数接收一个字典作为参数,字典的key表示要新增的列名,value表示新列数据的计算方式。下面给出两个示例:

第一个示例:向DataFrame中新增一列“new_col”,该列的值为两列之和

import pandas as pd

df=pd.DataFrame({'col1':[1,2,3],'col2':[2,4,6],'col3':[3,6,9]}) # 创建一个三列的DataFrame
df.assign(new_col = lambda x: x['col2']+ x['col3']) # 使用assign函数新增一列new_col,该列的值为col2和col3之和

输出结果为:

   col1  col2  col3  new_col
0     1     2     3        5
1     2     4     6       10
2     3     6     9       15

第二个示例:新增多列,并使用assign进行数据转换

import pandas as pd
import numpy as np

df=pd.DataFrame({'col1':[1,2,3],'col2':[2,4,6],'col3':[3,6,9]}) # 创建一个三列的DataFrame
df_new=df.assign(new_col = lambda x: x['col2']+ x['col3'], # 新增一列new_col,该列的值为col2和col3之和
                 col4 = lambda x: np.where(x['col1'] > 2, 'high', 'low')) #新增一列col4,该列的条件是col1大于2,否则为low

df_new

输出结果为:

   col1  col2  col3  new_col col4
0     1     2     3        5  low
1     2     4     6       10  low
2     3     6     9       15 high

上述代码中,使用了numpy包中的where函数,根据指定的条件添加新值。同时,可以一次性给DataFrame新增多列。