如何将新列分配为字符串到 Pandas Assign?

4
如何将字符串分配为新列到pandas.assign?
示例:
newcolumn = 'myColumn'
    if(newcolumn != ''):
      sourcePandas = sourcePandas.assign(newcolumn = sourcePandas[row['PrimaryColumn']].apply(func))

上述代码没有报错,但是创建的新列名字为newcolumn,而不是myColumn
2个回答

4

尝试一下这个方法。假设sourcePandas是你的数据框,

  • sourcePandas.assign()内将newcolumn =替换为f'{newcolumn}':
newcolumn = 'myColumn'
    if(newcolumn != ''):
      sourcePandas = sourcePandas.assign(**{f'{newcolumn}': sourcePandas[row['PrimaryColumn']].apply(func)})

同时分配多个列

您也可以同时分配多个列,使用df.assign()函数。使用**来解包字典并将其转换为关键字参数的键值对列表:pandas.DataFrame.assign(self, **kwargs)

# df --> dataframe
df.assign(**{'A': np.arange(7), 'B': np.arange(7) + 2})

References

  1. https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.assign.html

enter image description here


3
您可以传递一个字典,然后使用**解包字典,将其作为关键字参数传递给pd.DataFrame.assign
例如:
newcolumn = 'myColumn'
df = pd.DataFrame()
df.assign(**{newcolumn:[0,1,2]})
   myColumn
0         0
1         1
2         2

因此,它将会是这样。

newcolumn = 'myColumn'
    if(newcolumn != ''):
      sourcePandas = sourcePandas.assign(**{newcolumn: sourcePandas[row['PrimaryColumn']].apply(func)})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接