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

标签 python pandas

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

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

这是一个缓慢的操作,我想知道是否可以通过避免计算列的内存使用来优化它,并在跟踪其最大值的同时动态计算列。我可以在普通 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/

相关文章:

Python 3 : Getting information from list in list

python - 有什么方法可以不使用任何分隔符来写入 Pandas 数据框吗?

python - 如何根据上一行和下一行的条件在 Pandas Dataframe 上创建新列?

python - 如果我们用 .delay() 调用任务,celery 任务何时执行

python - waf pkg-config uselib_store 变量

python - jupyter R 魔术到 python 脚本

python - 如何使用 pandas groupby.filter 保留至少一个值小于 24 的组

python - 在python中单独执行特定数据类型的任务

python - 在使用 For 形成的数组中包含 If

python - vim 和 conque gdb 插件的问题