我遇到了技术分析库的异常行为。 Talib 和 pandas_ta 接受不超过 114130 行数据。
pandas_ta.stdev(closes[:114133], 3)
Open time
2021-02-04 16:33:00+00:00 NaN
2021-02-04 16:34:00+00:00 NaN
2021-02-04 16:35:00+00:00 28.750097
2021-02-04 16:36:00+00:00 2.780675
2021-02-04 16:37:00+00:00 7.548603
...
2021-04-25 04:00:00+00:00 32.036358
2021-04-25 04:01:00+00:00 NaN
2021-04-25 08:45:00+00:00 NaN
2021-04-25 08:46:00+00:00 NaN
2021-04-25 08:47:00+00:00 NaN
Name: STDEV_3, Length: 114133, dtype: float64
如果您在这些库的任何指标中传递一个包含大量行的数据帧,则 114130 之后的所有值都将等于 NaN。 我需要处理超过 100 万行。 有没有简单的方法来绕过这个限制?
我找到了一个使用 df.rolling 函数的解决方案。
pd.DataFrame(closes).rolling(4).std()
Open time
2021-02-04 16:33:00+00:00 NaN
2021-02-04 16:34:00+00:00 NaN
2021-02-04 16:35:00+00:00 NaN
2021-02-04 16:36:00+00:00 31.536164
2021-02-04 16:37:00+00:00 8.940106
2023-03-23 16:28:00+00:00 36.785568
2023-03-23 16:29:00+00:00 11.671006
2023-03-23 16:30:00+00:00 20.051231
2023-03-23 16:31:00+00:00 17.322779
2023-03-23 16:32:00+00:00 23.526981
1117888 rows × 1 columns
但是这种方法不适合我,因为pandas没有很多我需要解决任务的指标