如何在熊猫中使用多个列映射功能?

灰暗的

我已经检查了地图,应用,地图应用和合并,但是似乎找不到一种简单的方法来执行以下操作:

我有一个10列的数据框。我需要将它们中的三个传递给采用标量并返回标量的函数...

some_func(int a, int b, int c) returns int d

我想应用此方法,并在数据框中使用结果创建一个新列。

df['d'] = some_func(a = df['a'], b = df['b'], c = df['c'])

我发现的所有解决方案似乎都建议重写some_func以使用Series而不是标量,但这是不可能的,因为它是另一个软件包的一部分。我如何优雅地做到以上几点?

采尔文

使用pd.DataFrame.apply(),如下所示:

df['d'] = df.apply(lambda x: some_func(a = x['a'], b = x['b'], c = x['c']), axis=1)

注意:正如@ashishsingal关于列的询问一样,axis应为参数提供值1,默认值是0(如文档中所述,并在下面复制)。

轴:{0或'index',1或'columns'},默认0

  • 0或“索引”:将函数应用于每一列
  • 或“列”:将功能应用于每一行

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章