【发布时间】:2017-12-20 01:28:12
【问题描述】:
给定以下具有 60 个元素的 pandas 数据框。
import pandas as pd
data = [60,62.75,73.28,75.77,70.28
,67.85,74.58,72.91,68.33,78.59
,75.58,78.93,74.61,85.3,84.63
,84.61,87.76,95.02,98.83,92.44
,84.8,89.51,90.25,93.82,86.64
,77.84,76.06,77.75,72.13,80.2
,79.05,76.11,80.28,76.38,73.3
,72.28,77,69.28,71.31,79.25
,75.11,73.16,78.91,84.78,85.17
,91.53,94.85,87.79,97.92,92.88
,91.92,88.32,81.49,88.67,91.46
,91.71,82.17,93.05,103.98,105]
data_pd = pd.DataFrame(data, columns=["price"])
是否有一个公式可以重新调整此比例,以便对于从索引0 到索引i+1 开始的大于 20 个元素的每个窗口,将数据重新调整为 20 个元素?
这是一个循环,它使用用于重新缩放的数据创建窗口,我只是不知道为手头的这个问题进行重新缩放的任何方法。关于如何做到这一点有什么建议吗?
miniLenght = 20
rescaledData = []
for i in range(len(data_pd)):
if(i >= miniLenght):
dataForScaling = data_pd[0:i]
scaledDataToMinLenght = dataForScaling #do the scaling here so that the length of the rescaled data is always equal to miniLenght
rescaledData.append(scaledDataToMinLenght)
基本上在重新调整后,rescaledData 应该有 40 个数组,每个数组的长度为 20 个价格。
【问题讨论】:
-
你如何重新缩放?
-
看看
df.rolling。可能有点用处。 -
用于滚动窗口。我已经在循环中创建了带有数据的窗口。问题不在于如何滚动窗户。它是关于如何将数据从较长的长度重新调整为较小的长度
标签: python pandas interpolation resampling rescale