【问题标题】:Python time series linear interpolationPython时间序列线性插值
【发布时间】:2018-03-03 04:38:41
【问题描述】:

我尝试将不规则数据插入每月分辨率。错误是这样的 enter image description here

文件“/usr/local/lib/python2.7/dist-packages/traces/timeseries.py”,第 122 行,在 _get_linear_interpolate 返回 self.default 文件“/usr/local/lib/python2.7/dist-packages/traces/timeseries.py”,第 106 行,默认 引发 KeyError(msg) KeyError:“没有测量(或默认值)就无法获得价值” 代码是这样的:

import datetime 

from datetime import timedelta

import traces

import re

import os

ls = []

def cal_time_series(_ff):

    with open(_ff) as _fi:

        for _l in _fi.read().splitlines():

            _vv = _l.split(',')

            if _vv[0] == 'date':

                continue

                _date = _vv[0].split('-')
                ls.append((datetime.datetime(int(_date[0]),int(_date[1]),int(_date[2])),int(_vv[1])))

ts = traces.TimeSeries(ls)

ts.sample(sampling_period=datetime.timedelta(days=30),start=datetime.datetime(2000,1,15),end=datetime.datetime(2015,12,15),interpolate='linear',)


cal_time_series('/mnt/d/thesis/code/point1.csv')

【问题讨论】:

    标签: python interpolation


    【解决方案1】:

    您的代码存在缩进问题:

    if _vv[0] == 'date':
        continue
    
        _date = _vv[0].split('-')
        ls.append((datetime.datetime(int(_date[0]),int(_date[1]),int(_date[2])),int(_vv[1])))
    

    最后两行永远不会被击中,因为迭代会紧接在前面。

    【讨论】:

      猜你喜欢
      • 2018-07-11
      • 2016-01-16
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 2020-09-30
      • 2012-10-15
      • 2017-08-13
      • 1970-01-01
      相关资源
      最近更新 更多