gpt4 book ai didi

python - 将非时间数据上采样为整数米

转载 作者:行者123 更新时间:2023-12-01 07:15:43 25 4
gpt4 key购买 nike

我使用 Python 3,想要对一个数据系列进行上采样,如下所示:

  • 距离(米)、海拔(米)
  • 00.00, 439.2
  • 20.36, 462.7
  • 61.70, 480.4
  • ...,...
  • 名称:海拔(米),数据类型:float64

像这样(使用线性插值):

  • 距离(米)、海拔(米)
  • 00.00, 439.2
  • 01.00, 440.4
  • 02.00, 441.6
  • 03.00, 442.7
  • 04.00, 443.9
  • 05.00, 445.1
  • ...,...

最佳答案

我建议使用科学Python库的pandasnumpy作为一种方法。

首先您必须安装两者:

pip install pandas
pip install numpy

现在您可以在 python 实例中使用/导入它们:

import pandas as pd
import numpy as np

之后你应该初始化一个 pandas 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

关于python - 将非时间数据上采样为整数米,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57980337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com