【问题标题】:How to interpolate unevenly spaced years in Pandas python?如何在 Pandas python 中插入不均匀间隔的年份?
【发布时间】:2020-05-12 00:51:06
【问题描述】:

我正在尝试将具有某些不均匀年份的 DataFrame (例如 orig_years = [2020, 2022, 2030, 2038, 2040])插入到类似 given_years = [2020, 2025, 2030, 2035, 2040, 2045, 2050] 的数据中。

这是我正在处理的一个虚拟 DataFrame:

df:
Out[344]: 
      FUEL  YEAR  VALUE
0      gas  2022   1000
1      gas  2030    500
2      oil  2020      5
3      oil  2040     10
4  biomass  2030    100
5  biomass  2038    100

年份不均,我该如何插值?我会很感激任何想法。

预期输出: 如您所见,这是interpolate(limit_direction = 'both')的结果

REGION FUEL YEAR VALUE 0 DE gas 2020 1000.00 1 DE oil 2020 5.00 2 FR biomass 2020 100.00 4 DE gas 2025 750.00 5 DE oil 2025 6.25 6 FR biomass 2025 100.00 .. ... ... ... ... 10 FR biomass 2035 100.00 11 DE oil 2035 8.75 12 DE gas 2035 500.00 14 DE gas 2040 500.00 15 FR biomass 2040 100.00 16 DE oil 2040 10.00

谢谢。

【问题讨论】:

  • 你的预期输出是什么?
  • @YOBEN_S 我添加了。

标签: python-3.x pandas interpolation


【解决方案1】:

您可以使用np.arange

>>> df.YEAR = np.arange(2020, 2020 + (5*len(df)), 5)
>>> df
      FUEL  YEAR  VALUE
0      gas  2020   1000
1      gas  2025    500
2      oil  2030      5
3      oil  2035     10
4  biomass  2040    100
5  biomass  2045    100

【讨论】:

  • 谢谢,但 VALUE 不正确,例如:在原始 DataFrame oil 2020 5 但现在不存在。现在它移到了 2030 年。
  • 您能否提供相同样本数据的预期输出?这将有助于更好地理解qus..
  • 例如原始 oil 2020 5 和 2025 应该是 oil 2025 6.25 类似的东西。
猜你喜欢
  • 2021-08-31
  • 1970-01-01
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 2017-01-09
相关资源
最近更新 更多