将新列插入到数据框中,该数据框可通过多个变量进行计算

时间:2019-07-10 07:23:53

标签: python pandas dataframe

我想根据相应列的计算将新列插入数据框,

这对我有用:

df['new column'] = [ foo(x) for x in df['X']]

现在,如果要基于> 1列进行计算

df['new column'] = [ foo(x, y, z) for x, y, z in df['X', 'Y', 'Z']]

这是我尝试过的方法,但是它不接受语法。 我可以遍历,但我想内联计算。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

DataFrame.applyaxis=1一起用于每行的进程,并将lambda函数用于传递列的名称:

df['new column'] = df.apply(lambda x: foo(x['X'], x['Y'], x['Z']), axis=1)

答案 1 :(得分:1)

您可以直接访问基础的numpy数组:

df['new column'] = [foo(x, y, z) for x, y, z in df[['X', 'Y', 'Z']].values]

当心,它可能是您想要的(它可能比迭代或应用要快),但是您无法从numpy数组访问列名的索引。