从Python现有序列中生成扩展的时间序列数据

时间:2018-10-03 12:20:55

标签: python dataframe time-series

好吧,我很久以来一直在寻找该解决方案的解决方案,但我找不到,尽管我认为这很容易做到。我有一个时间序列,以1小时为间隔,一年。我想做的是通过对原始数据进行一些修改来创建下一年的伪造数据。例如,如果我的原始数据是这样的

Date standard   Estimated production 

1/1/2016 7:00   0,0  
1/1/2016 8:00   0,0  
1/1/2016 9:00   16,3  
1/1/2016 10:00  29,4   
1/1/2016 11:00  40,6  
1/1/2016 12:00  33,9

(这种情况一直持续到年底),我想创建每个日期都相似的假数据。

Date standard   Estimated production 

1/1/2017 7:00   0,01  
1/1/2017 8:00   0,03  
1/1/2017 9:00   16,1 
1/1/2017 10:00  29,3  
1/1/2017 11:00  40,8  
1/1/2017 12:00  33,1

以上更改当然是完全随机的,产量应在设定的范围内增加或减少一个数字。预先谢谢你!

1 个答案:

答案 0 :(得分:2)

您可以使用DateOffset将索引移动一年(然后可以根据需要修改值)。

要产生噪音,您可以查看numpy random实用程序。

import numpy as np
# Same values as 2016, but dates shifted by 1 year (2017)
fake_data = df.loc['2016'].copy()
fake_data.index = fake_data.index + pd.DateOffset(years=1)

# Add gaussian noise, with same standard deviation of production
noise = np.random.randn(len(fake_data)) * fake_data['production'].std()
fake_data['production'] = fake_data['production'] + noise

new_data = pd.concat([data, new_data], axis=0)