Python时间序列线性插值

2024-03-28 21:40:55 发布

您现在位置:Python中文网/ 问答频道 /正文

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

文件“/usr/local/lib/python2.7/dist-packages/traces”/时间序列.py,第122行,在“获取线性插值”中 返回自身默认值 文件“/usr/local/lib/python2.7/dist-packages/traces”/时间序列.py,第106行,默认为 raise KeyError(消息) 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')

Tags: 文件importdatetimedatelibpackagesusrlocal
1条回答
网友
1楼 · 发布于 2024-03-28 21:40:55

代码存在缩进问题:

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])))

最下面的两行永远不会被击中,因为迭代会继续进行。你知道吗

相关问题 更多 >