繁体   English   中英

在 pandas 中计算 limsup/liminf 的最有效和 Pythonic 方法是什么?

[英]What is the most efficient and Pythonic way of calculating limsup/liminf in pandas?

Limsup被定义为序列的上确界。 换句话说,在当前时刻,人们可以查看未来值并获取它们中的最大值来创建 limsup。

问题

在 pandas 中计算 limsup/liminf 的最有效和 Pythonic 方法是什么?

我的尝试

我正在使用 for 循环计算 limsup,我确信这不是一种有效的方法。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(0)
x = np.random.randn(2000)
y = np.cumsum(x)
df = pd.DataFrame(y, columns=['value'])
df['lim_sup'] = 0
fig, ax = plt.subplots(figsize=(20, 4))
for i in range(len(df)):
  df['lim_sup'].iloc[i] = df['value'].iloc[i:].max()

df['value'].plot(ax=ax)
df['lim_sup'].plot(ax=ax, color='r')
ax.legend(['value', 'limsup'])
plt.show()

在此处输入图像描述

反转这些值并使用cummax获得累积最大值:

df["lim_sup"] = df.loc[::-1, "value"].cummax()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM