我使用Python 3,并希望像这样对一个数据系列进行升采样:
要这样(带有线性插值):
答案 0 :(得分:1)
我建议使用科学的python库的pandas和numpy作为方法。
首先您必须同时安装两个:
pip install pandas
pip install numpy
现在您可以在python实例中使用/导入它们:
import pandas as pd
import numpy as np
此后,您应该使用数据初始化大熊猫dataframe:
df=pd.DataFrame({'meters':[0.0], 'elevation': [439.2]})
现在,我建议使用numpys arange函数重新索引数据:
df2 = df.reindex(np.arange(0.0, 62, 0.01))
设置20.36和61.70的值:
(也许有一个更聪明的解决方案,但让我们将此作为解决方法。)
df2.set_value(20.36, 'meters', 20.36)
df2.set_value(20.36, 'elevation', 462.7)
df2.set_value(61.70, 'meters', 61.70)
df2.set_value(61.70, 'elevation', 480.4)
现在我们可以使用pandas linear interpolation:
df3 = df2.interpolate(method='linear', limit_direction='forward', axis=0)
最后获得我们想要的数据:
>>> df3[0:100:100]
meters elevation
0.0 0.0 439.200000
1.0 1.0 440.354224
2.0 2.0 441.508448
3.0 3.0 442.662672
4.0 4.0 443.816896
... ... ...
58.0 58.0 478.815820
59.0 59.0 479.243977
60.0 60.0 479.672134
61.0 61.0 480.100290