gpt4 book ai didi

python - 从 Pandas apply 获取两个返回值

转载 作者:太空狗 更新时间:2023-10-30 01:50:18 32 4
gpt4 key购买 nike

我试图从 apply 方法返回两个不同的值,但我不知道如何获得我需要的结果。

具有以下功能:

def fun(row):
s = [sum(row[i:i+2]) for i in range (len(row) -1)]
ps = s.index(max(s))
return max(s),ps

df为:

    6:00    6:15    6:30    
0 3 8 9
1 60 62 116

我试图返回行的最大值,但我还需要获取产生最大组合的第一个值的索引。

df["phour"] = t.apply(fun, axis=1)

我可以获得所需的输出,但我不知道如何在新列中获取索引。到目前为止,我在 tuple

中得到了两个答案
    6:00    6:15    6:30    phour
0 3 8 9 (17, 1)
1 60 62 116 (178, 1)

如何在自己的列中获取索引值?

最佳答案

你可以申请 pd.Series

df.drop('Double', 1).join(df.Double.apply(pd.Series, index=['D1', 'D2']))

A B C D1 D2
0 1 2 3 1 2
1 2 3 2 3 4
2 3 4 4 5 6
3 4 1 1 7 8

等价

df.drop('Double', 1).join(
pd.DataFrame(np.array(df.Double.values.tolist()), columns=['D1', 'D2'])
)

设置
使用@GordonBean 的df

df = pd.DataFrame({'A':[1,2,3,4], 'B':[2,3,4,1], 'C':[3,2,4,1], 'Double': [(1,2), (3,4), (5,6), (7,8)]})

关于python - 从 Pandas apply 获取两个返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43397919/

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