【问题标题】:Generating expanded time series data from existing series in Python从 Python 中的现有序列生成扩展的时间序列数据
【发布时间】:2018-10-03 12:20:54
【问题描述】:

嗯,我搜索了这个解决方案很长时间,但我找不到它,尽管我相信它会很容易做到。我有一个时间序列,以 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

以上的变化当然是完全随机的,产量应该在设定的范围内增加或减少一个数字。提前谢谢!

【问题讨论】:

  • 您需要 C&P 解决方案吗? .. 向我们展示您的方法,然后我们可以提供帮助。
  • 您想在今年的数据中添加随机噪声吗?
  • 对我来说最好的选择确实是添加随机噪声。到目前为止,我所做的只是从原始数据帧值中添加或减去一个数字,具体取决于该行是奇数还是偶数: pvnew[::2] = pvnew[::2]+0.05 pvnew[1:: 2] = pvnew[1::2]-0.05

标签: python dataframe time-series


【解决方案1】:

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

要产生噪音,您可以查看 numpy random utils。

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)

【讨论】:

  • 我宁愿添加一些噪音,而不是添加特定值。
  • 我认为您问题的核心是一年后如何拥有相同的日期/时间。用假数据的例子修改了我的问题,但是有很多方法可以做到这一点,并且取决于数据的类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-29
  • 2014-09-08
  • 2015-04-03
  • 2021-11-08
  • 1970-01-01
  • 2020-11-26
相关资源
最近更新 更多