如何追踪熊猫系列的连续高点?

Posted

技术标签:

【中文标题】如何追踪熊猫系列的连续高点?【英文标题】:How to track consecutive highs in a Pandas Series? 【发布时间】:2021-04-14 21:29:58 【问题描述】:

我想用熊猫在时间序列中跟踪连续高点,如图所示。见下图:

如何用 Pandas 做到这一点?

如果您想玩一个现实生活中的示例,您可以下载股票价格,例如“MSFT”并在示例中使用“收盘价”。下载股票价格的方法有多种,这里有一种:

import yahooquery

ticker = Ticker('MSFT', asynchronous=True)

df = ticker.history()

【问题讨论】:

【参考方案1】:

返回的数据不足以执行您想要的操作。如果数据集确实具有连续的局部最大值,则使用 SO find min/max 技术可以通过分析 max 列来工作。

import yahooquery
import matplotlib.pyplot as plt
import pandas as pd, numpy as np
from scipy.signal import argrelextrema

ticker = yahooquery.Ticker('MSFT', asynchronous=True)

df = ticker.history()
df = df.reset_index()

n = 5
df['min'] = df.iloc[argrelextrema(df.close.values, np.less_equal,
                    order=n)[0]]['close']
df['max'] = df.iloc[argrelextrema(df.close.values, np.greater_equal,
                    order=n)[0]]['close']

plt.scatter(df["date"], df['min'], c='r')
plt.scatter(df["date"], df['max'], c='g')
plt.plot(df["date"], df["close"])
plt.show()

【讨论】:

以上是关于如何追踪熊猫系列的连续高点?的主要内容,如果未能解决你的问题,请参考以下文章

在熊猫中将两个系列组合成一个DataFrame

如果日期时间索引的差异小于熊猫系列的 5 分钟,则分组

如何在熊猫中获得连续滚动平均值?

熊猫:返回具有特定非连续列选择的新数据框[重复]

如何在熊猫 DF 列中删除连续的相似数字

如何在熊猫 DataFrame 中对连续值进行分组