【问题标题】:How to average between rows in a Dataframe to fillup missing values [duplicate]如何在数据框中的行之间进行平均以填充缺失值[重复]
【发布时间】:2021-12-31 13:08:27
【问题描述】:

我有一个熊猫数据框:

Date
2016-11-21    26.292355
2016-11-22    26.308828
2016-11-23    26.174692
2016-11-24          NaN
2016-11-25    26.306471
2016-11-26          NaN
2016-11-27          NaN
2016-11-28    26.254705
2016-11-29    26.228815
2016-11-30    26.007618
2016-12-01    25.765236
2016-12-02    25.861721
2016-12-03          NaN
2016-12-04          NaN
2016-12-05    25.675812
2016-12-06    25.873482
2016-12-07    26.127634
2016-12-08    26.384132
2016-12-09    26.814764
Name: Close, dtype: object

我想用上一行和下一行的平均值来填充这些缺失的NaN 值。

生成的数据框将是:

Date
2016-11-21    26.292355
2016-11-22    26.308828
2016-11-23    26.174692
2016-11-24    26.240581  # Averaged value from previous and next row
2016-11-25    26.306471
2016-11-26    26.280588  # Averaged value from previous and next row
2016-11-27    26.280588  # Averaged value from previous and next row
2016-11-28    26.254705
2016-11-29    26.228815
2016-11-30    26.007618
2016-12-01    25.765236
2016-12-02    25.861721
2016-12-03    25.768766  # Averaged value from previous and next row
2016-12-04    25.768766  # Averaged value from previous and next row
2016-12-05    25.675812
2016-12-06    25.873482
2016-12-07    26.127634
2016-12-08    26.384132
2016-12-09    26.814764
Name: Close, dtype: object

我将如何在 python 中做到这一点?

【问题讨论】:

    标签: python pandas dataframe interpolation nan


    【解决方案1】:

    使用Series.interpolate:

    >>> sr.interpolate(method='linear')
    Date
    2016-11-21    26.292355
    2016-11-22    26.308828
    2016-11-23    26.174692
    2016-11-24    26.240581
    2016-11-25    26.306471
    2016-11-26    26.289216
    2016-11-27    26.271960
    2016-11-28    26.254705
    2016-11-29    26.228815
    2016-11-30    26.007618
    2016-12-01    25.765236
    2016-12-02    25.861721
    2016-12-03    25.799751
    2016-12-04    25.737782
    2016-12-05    25.675812
    2016-12-06    25.873482
    2016-12-07    26.127634
    2016-12-08    26.384132
    2016-12-09    26.814764
    Name: Close, dtype: float64
    

    【讨论】:

    • 我相信它做到了 :) 感谢您的支持。
    猜你喜欢
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 2020-05-30
    相关资源
    最近更新 更多