gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 12:13:41 25 4
gpt4 key购买 nike

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)))

关于python - Dataframe Apply方法返回多个元素(系列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36599697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com