gpt4 book ai didi

Python Pandas 是否可以在生成的系列中找到最大值而无需将该系列存储到内存中?

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

我试图在数据框中的列上找到计算的最大值。为此,我创建了计算列,然后对其调用 max()

df['two'] = df['one']/df['one'].index
最大值 = df['two'].max()

这是一个缓慢的操作,我想知道是否可以通过避免计算列的内存使用来优化它,并在跟踪其最大值的同时动态计算该列。我可以在 vanilla python 中做到这一点,但我想要 pandas 的效率。

感谢任何能帮助我的人!

最佳答案

我们可以尝试作弊,但我们需要知道确切的公式/算法。

在您的示例中,可以在不存储列的情况下完成:

maximum = (df.a/df.index).max()

如果是更复杂的计算你可以使用.assign()方法:

maximum = df.assign(two=df.a/df.index)['two'].max()

测试:

In [19]: df
Out[19]:
a b c
0 0 9 3
1 7 6 5
2 4 5 8
3 0 4 3
4 7 4 5
5 0 9 9
6 7 5 2
7 4 4 4
8 1 3 3
9 3 1 3
10 6 6 1
11 8 4 0
12 6 2 9
13 4 1 0
14 8 5 9

In [20]: df.assign(two=df.a/df.index)['two'].max()
Out[20]: 7.0

In [21]: (df.a/df.index).max()
Out[21]: 7.0

关于Python Pandas 是否可以在生成的系列中找到最大值而无需将该系列存储到内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37124433/

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