2017-04-26 66 views
0

我有两组数据(dataframes),每个与涉及海誓山盟两列的重采样柱(可以称它们为x和y),像这样:大熊猫数据帧的非时间序列

设置1:

x | y 
0.1 | 1 
0.2 | 2 
0.3 | 3 
0.4 | 2 
0.5 | 3 
0.6 | 4 
0.7 | 5 

组2:

x | y 
0.12 | 0 
0.21 | 2 
0.31 | 5 
0.44 | 4 
0.52 | 3 
0.61 | 1 
0.76 | 1 

我要总结两组的y值(以相等的X点),但是x是稍有错位。为了解决这一点,我认为这将是最好的0.001步骤进行插值从x = 0.12〜0.7两组,主要有:

mini = max(set1.x.min(), set2.x.min()) 
maxi = max(set1.x.max(), set2.x.max()) 
x_interpolation_points = np.arange(maxi, mini, 0.001) 

# Next step: interpolate both sets 
# last step: sumY = set1.y + set2.y 

如何将一个accomplisch呢?在一个timeserie我会用重采样()的情况下,内插(),但这不是一个timeserie ..

+0

你可以'interpolate'在一个正常的一系列参见[文档](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.interpolate.html#pandas.Series.interpolate) – EdChum

+0

那是什么我想,但在文档我没有看到如何插值到特定值的任何选项。 – Yorian

+0

为什么不只是'set2 ['x'] = set2 ['x']。round(1)'这样值匹配?或者你想要插入Set1,以便它恰好与Set2匹配?因此,你可以做'set1.set_index( 'X')重新索引(np.arange(全型,小型,0.001) )'然后如果我做到这一点,你可以'合并这 – EdChum

回答

0

最后我解决它使用numpy的:numpy.interp()