我想绘制不完整的数据(某些值为None)。另外,我想在数据集上应用黄油函数,并显示不完整和平滑的两个图形。过滤器功能似乎不适用于不完整的数据。
数据文件:data.csv
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from scipy import signal
data = np.genfromtxt('data.csv', delimiter = ',')
df = pd.DataFrame(data)
df.set_index(0, inplace = True)
b, a = signal.butter(5, 0.1)
y = signal.filtfilt(b,a, df[1].values)
df2 = pd.DataFrame(y, index=df.index)
df.plot()
df2.plot()
plt.show()
答案 0 :(得分:1)
documentation page没有提及与NaN相关的任何内容。您可能必须首先从值列表中删除NaN。这是使用Numpy isnan函数实现的一种方法:
y = signal.filtfilt(b, a, df[1].values[~np.isnan(df[1].values)])
df2 = pd.DataFrame(y, index=df.index[~np.isnan(df[1].values)])