繁体   English   中英

如何插入pandas数据帧,以便在给定的间隔内对列进行采样?

[英]How to interpolate pandas dataframe such that a column is sampled in given interval?

我有一些数据框:

time    data
1       1
2       2
3.5     3
4.22    5
9.1     3
10.2    4

时间肯定会上升。

我想要一个数据帧,其中时间列在给定范围(start, stop, step)内插值,并通过某种插值方法对数据列进行相应采样。

我想要外推的可能性,这意味着我希望startstop能够低于最小时间值或大于最大值。

我怎样才能做到这一点?

我可以接受 numpy 解决方案,但如果可能的话,我宁愿只留在熊猫中。

使用自定义插值函数。 沿着这些路线的东西:

from scipy.interpolate import interp1d
def interpolator(g: pd.Series):
    x = [...]
    y = [...]
    interpolated_array = interp1d(x, y, bounds_error=False, fill_value=0)(g)
    return interpolated_array

grouped = df.groupby('column_a')
df['column_intepolated'] = grouped['column_b'].transform(interpolator)

如果您想尝试一下,并且难以适应您的数据,请发表评论,我会在这里发布。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM