Pandas 几何 X-Y 数据的线性插值似乎忽略了点

Pandas linear interpolation for geometrical X-Y data seems to ignore points

我正在尝试在 pandas 中对我的数据帧进行上采样(从 50 Hz 到 2500 Hz)。我必须上采样以匹配以更高频率采样的传感器。我在 x、y、z 中有来自铣床的点。 当我绘制原始数据时,线条看起来很直,正如我所期望的那样。

我正在像这样插入数据框:

df.drop_duplicates(subset='time', inplace=True)
df.set_index('time', inplace=True)
df.index = pd.DatetimeIndex(df.index)
upsampled = new_df.resample('0.4ms').interpolate(method='linear')
plt.scatter(upsampled['X[mm]'], upsampled['Y[mm]'], s=0.5)
plt.plot()

我也试过

upsampled = df.resample('0.4L').interpolate(method='linear')

我希望新点始终位于原始点之间。由于我要从 50 Hz 到 2500 Hz,我希望原始数据中每对点之间均匀间隔 50 个点。不过好像忽略了一些原来的点,如下图可以看到(第二张图放大了一个特别麻烦的地方)。

此图显示了橙色的原始点和蓝色的上采样、插值点(两者都是分散的,尽管上采样点非常密集,看起来像一个图)。其代码如下所示。

upsampled = df.resample('0.4ms').interpolate(method='linear')
plt.scatter(upsampled['X[mm]'], upsampled['Y[mm]'], s=0.5, c='blue') 
plt.scatter(df['X[mm]'], df['Y[mm]'], s=0.5, c='orange')
plt.gca().set_aspect('equal', adjustable='box')
fig.show()

有什么想法可以使插值起作用吗?

最有可能的问题是原始数据帧和重采样数据帧中的时间戳未对齐,因此在重采样时我们需要指定如何处理。

由于原始频率为 50 Hz 而重采样频率为 2500 Hz,只需采用 mean 即可解决问题:

upsampled = new_df.resample('0.4ms').mean().interpolate(method='linear')

遗憾的是,没有任何示例数据,我无法验证它是否有效。如果有帮助请告诉我