Dataframe Apply 方法返回多个元素(系列)

2023-11-23

import pandas as pd

假设我有一个dataframe像这样:

df = pd.DataFrame({"a":range(4),"b":range(1,5)})

它看起来像这样:

   a  b
0  0  1
1  1  2
2  2  3
3  3  4

以及一个将 X 乘以 Y 的函数:

def XtimesY(x,y):
    return x*y

如果我想向 df 添加新的 pandas 系列,我可以这样做:

df["c"] =df.apply( lambda x:XtimesY(x["a"],2), axis =1)

有用 !

现在我想添加多个系列:

我有这个功能:

def divideAndMultiply(x,y):
    return x/y, x*y

像这样的东西?:

df["e"], df["f"] = df.apply( lambda x: divideAndMultiply(x["a"],2) , axis =1)

这不起作用!

我想要'e'列接收分区和'f'列乘法!

注意:这不是我正在使用的代码,但我期望有相同的行为。


差不多了。使用 zip* 解压该函数。尝试这个:

def divideAndMultiply(x,y):
    return x/y, x*y

df["e"], df["f"] = zip(*df.a.apply(lambda val: divideAndMultiply(val,2)))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dataframe Apply 方法返回多个元素(系列) 的相关文章

随机推荐