Pandas数据帧滚动最大未来警告

2024-10-02 04:23:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python pandas代码来将url Json数据从api解析到dataframe

import pandas as pd
import json
import urllib.request
import os
from pandas import DataFrame

    with urllib.request.urlopen(
                            "https://bittrex.com/Api/v2.0/pub/market/GetTicks?marketName=BTC-WAVES&tickInterval=fiveMin") as URL:
        data = json.loads(URL.read().decode())
        df2 = pd.DataFrame(data=data['result'])
        df2.rename(columns={'BV': 'BaseVolume', 'C': 'Close', 'H': 'High', 'L': 'Low', 'O': 'Open', 'T': 'TimeStamp','V': 'Volume'}, inplace=True)

    high_prices = df2['High']
    close_prices = df2['Close']
    low_prices = df2['Low']
    TimeStamp = df2.index
    nine_period_high = pd.rolling_max(df2['High'], window=9)
    nine_period_low = pd.rolling_min(df2['Low'], window=9)
    df2['tenkan_sen'] = (nine_period_high + nine_period_low) /2

    # Kijun-sen (Base Line): (26-period high + 26-period low)/2))
    period26_high = pd.rolling_max(high_prices, window=26)
    period26_low = pd.rolling_min(low_prices, window=26)
    df2['kijun_sen'] = (period26_high + period26_low) / 2

    # Senkou Span A (Leading Span A): (Conversion Line + Base Line)/2))
    df2['senkou_span_a'] = ((df2['tenkan_sen'] + df2['kijun_sen']) / 2).shift(26)

    # Senkou Span B (Leading Span B): (52-period high + 52-period low)/2))
    period52_high = pd.rolling_max(high_prices, window=52)
    period52_low = pd.rolling_min(low_prices, window=52)
    df2['senkou_span_b'] = ((period52_high + period52_low) / 2).shift(26)

print('df2')
print('DONE')

它对我来说是完美的,除了这个错误(不是:它不影响结果,但我担心这个未来的警告。在

^{pr2}$

在所有脚本中,相同的错误总是重复出现。在

任何人都可以帮忙。在


Tags: importpandaswindowperiodlowpdpricesspan
2条回答

你可以这样做:

res = df2.rolling(9).max().eval("tenkan_sen=(High+Low)/2", inplace=False)

结果:

^{pr2}$

改变pd.滚动最大值()方法调用.rolling().max()等

分钟也一样。在

pd.rolling_max(df2['High'], window=9)

变成

^{pr2}$

弃用警告正好说明了这一点,即在pandas的未来版本中将不支持rolling_min和rolling_max函数。在

相关问题 更多 >

    热门问题