我已经检查了地图,应用,地图应用和合并,但是似乎找不到一种简单的方法来执行以下操作:
我有一个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] 删除。
我来说两句