如何动态分配熊猫分配中的列名

时间:2020-08-13 12:40:48

标签: python python-3.x pandas

我有一个包含两列的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

1 个答案:

答案 0 :(得分:1)

它接受*kwargs关键字参数。因此,您可以制作第一个字典,然后使用**解压缩。

col = 'val'
df1 = df1.assign(**{col:lambda x: x.val+10})
df1
      name  val
0    James   25
1  Michael   20