Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pandas.DataFrame.interpolate(method=";pchip";)仍然关注索引中的漏洞,如何停止?_Python_Pandas_Numpy_Dataframe_Interpolation - Fatal编程技术网

Python pandas.DataFrame.interpolate(method=";pchip";)仍然关注索引中的漏洞,如何停止?

Python 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

pandas
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);