如何将普通数据框转换为烛台数据框?

How to covert a normal data frame into candlestick dataframe?

fig = go.Figure()
fig.add_trace(
  go.Scatter(x=alldates, y=countriesData[0]["ToxPi Score"], 
  name="Suffolk",customdata=countriesData[0],hovertemplate=common_template)
)
fig.update_xaxes(
rangeslider_visible=True,
rangeselector=dict(
    buttons=list([
        dict(count=1, label="1m", step="month", stepmode="backward"),
        dict(count=6, label="6m", step="month", stepmode="backward"),
        dict(count=1, label="YTD", step="year", stepmode="todate"),
        dict(count=1, label="1y", step="year", stepmode="backward"),
        dict(step="all")
    ])
 )
 )

fig.show()

我的数据框看起来像这样

我正在处理一个简单的数据集,其中我根据日期绘制了一个州的 ToxPi 分数。

现在我需要根据给定的方向将这些数据绘制成烛台格式

Open value: ToxPi value at the first day in a given range of 7 days. Close value: ToxPi value at the last (7th) day in a given range of 7 days. High value: The highest ToxPi value in a given range of 7 days. Low value: The lowest ToxPi value in a given range of 7 days.

我不知道如何隐藏它或将数据分成每周格式

EDIT

更新 df 中的日期时间列后,它看起来像这样

请帮忙 提前致谢。

虽然我不是很清楚“给定的7天范围”是什么意思,但我的猜测是应该使用7天的滚动计算来计算开盘价、最高价、最低价和收盘价,并且您的数据有 1 天的粒度。

我不确定您的 countriesData[0] 是否有日期时间列,因此我们将使用您传递给 go.Scatter:

alldates 数组
df = countriesData[0].copy()
df["date_time"] = alldates
df["date_time"] = pd.to_datetime(df["date_time"])
df = df.set_index("date_time")

## create your features Open, Close, High, Low:
df["Open"] = df["ToxPi Score"].rolling("7D").apply(lambda row: row.iloc[0])
df["Close"] = df["ToxPi Score"].rolling("7D").apply(lambda row: row.iloc[-1])
df["High"] = df["ToxPi Score"].rolling("7D").max()
df["Low"] = df["ToxPi Score"].rolling("7D").max()

然后您可以使用修改后的 DataFrame 构建烛台图:

fig = go.Figure(data=[go.Candlestick(
    x=df.index,
    open=df["Open"],
    high=df["High"],
    low=df["Low"],
    close=df["Close"]
)])