[英]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)
内插值,并通过某种插值方法对数据列进行相应采样。
我想要外推的可能性,这意味着我希望start
或stop
能够低于最小时间值或大于最大值。
我怎样才能做到这一点?
我可以接受 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.