Python pandas.DataFrame.interpolate(method=";pchip";)仍然关注索引中的漏洞,如何停止?
pandasPython pandas.DataFrame.interpolate(method=";pchip";)仍然关注索引中的漏洞,如何停止?,python,pandas,numpy,dataframe,interpolation,Python,Pandas,Numpy,Dataframe,Interpolation,pandasinterpolate函数在仅选择特定索引执行该函数时,仍会注意数据集中的预期孔(或故意不包括索引) 它进行插值,就好像缺失的索引上有值一样,然后不将它们包含在结果中。 仅当使用方法“pchip”时才会发生这种情况。 当使用“linear”时,它只关注“现有”行。 如何关闭它?(因此,“pchip”上的插值可以像线性插值一样发生) 在样本图中,你会更清楚地看到我的意思 可复制样本: import numpy as np, pandas as pd, matplotlib.pyplot
interpolate
函数在仅选择特定索引执行该函数时,仍会注意数据集中的预期孔(或故意不包括索引)
它进行插值,就好像缺失的索引上有值一样,然后不将它们包含在结果中。
仅当使用方法“pchip”时才会发生这种情况。
当使用“linear”
时,它只关注“现有”行。
如何关闭它?(因此,“pchip”
上的插值可以像线性插值一样发生)
在样本图中,你会更清楚地看到我的意思
可复制样本:
import numpy as np, pandas as pd, matplotlib.pyplot as plt
lo = 8000; hi = 13000; LEN = 200
# create columns
np.random.seed(seed=7)
a = np.random.uniform(low=lo, high=hi, size=(LEN,),)
np.random.seed(seed=12)
b = np.random.uniform(low=lo, high=hi, size=(LEN,))
np.random.seed(seed=3)
c = np.random.uniform(low=lo, high=hi, size=(LEN,))
np.random.seed(seed=253)
d = np.random.uniform(low=lo, high=hi, size=(LEN,))
date = pd.DatetimeIndex(["2019-06-17 08:45:00"])[0]
# merge data to dataframe
df = pd.DataFrame({"A":a,"B":b,"C":c,"D":d},
index = range(len(pd.date_range(date, periods=len(a), freq='T') )))
# ix will be the index to be excluded
sub_ix = df.index[110:150]
ix = df.index
ix = ix.drop(sub_ix)
# place nans
df.iloc[100:190] = np.nan
# interpolate
df.loc[ix] = df.loc[ix].interpolate(method="pchip", order=1)
# plot
plt.scatter(range(len(df.A)), df.A);
plt.scatter(range(len(df.B)), df.B);
plt.scatter(range(len(df.C)), df.C);
plt.scatter(range(len(df.D)), df.D);