Ваша первая проблема заключается в том, что вам нужно правильно отформатировать значения времени, поскольку pandas загружает их в виде строк, например, вы можете преобразовать их в секунды.
Затем вы используете функцию np.linspace
внеправильный путь.Сколько точек вы хотите рассчитать?
Вот пример кода:
import pandas as pd
from scipy import interpolate
import pylab as pl
import numpy as np
import dateutil
import datetime
time2seconds = lambda x:(dateutil.parser.parse(x)-datetime.datetime(1970,1,1)).total_seconds()
df = pd.read_csv('aa.txt', delim_whitespace=True)
df["time"] = map(time2seconds, df["time"])
xnew = np.linspace(start=min(df["time"]), stop=max(df["time"]), num=len(df["time"])*4)
f = interpolate.interp1d(df["time"], df["data"], kind="cubic")
ynew = f(xnew)
pl.plot(xnew, ynew, label="cubic", marker='.' )
pl.show()
- Edit - для отметок времени, которые вы, вероятно, хотите использовать pd.to_datetime