我有一个包含两列的dataFrame
lst = [['James',15],['Michael',10]]
df1 = pd.DataFrame(lst,columns = ['name','val'])
我只想使用pandas分配功能完成以下任务
col = 'val'
df1 = df1.assign(col=lambda x: x.val+10)
哪个给我这个输出
name val col
0 James 25 35
1 Michael 20 30
但是我实际上想要这个
name val
0 James 25
1 Michael 20
我想在val
变量中传递列名col
答案 0 :(得分:1)
它接受*kwargs
关键字参数。因此,您可以制作第一个字典,然后使用**
解压缩。
col = 'val'
df1 = df1.assign(**{col:lambda x: x.val+10})
df1
name val
0 James 25
1 Michael 20