在大Pandas中插值数据

2024-05-23 21:32:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下格式的数据格式:

t1 x1
t2 NaN
t3 NaN
t4 x4
t5 x5
t6 NaN
t7 x7

等等。我想使用第一列对第二列中的数据进行插值。所以,数字是x2和x3,我不希望它们在x1和x4之间等距排列,而是相对于x1和x4排列,就像t2和t3相对于t1和t4排列一样。有没有一种有效的方法(不使用for循环)来实现这一点?谢谢大家!


Tags: 数据格式nant1t3x1数据格式t2
2条回答

如果您的时间是索引,或者如果可以将其作为索引,您可以通过以下方式实现:

df.set_index('col1',inplace=True) #only if they are not already index
df['col2'] = df['col2'].interpolate(method='index')

另一种方法是制作一个虚拟df,或者像其他解决方案所示,使用numpy插值

我们可以做numpy.interp

s=np.interp(df['col1'].values,
          df.dropna()['col1'].values,
          df.dropna()['col2'].values)
df['col2_new']=s

相关问题 更多 >