【问题标题】:How to procure moving average on data while keeping 'NaN' values in mind?如何在牢记“NaN”值的同时获取数据的移动平均值?
【发布时间】:2021-06-15 16:59:25
【问题描述】:

我有以下可以包含 NaN 值的数据,我想计算滚动平均值,但它应该忽略 NaN 值。

Date        Price
01-03-2020 100.0
02-03-2020 200.0
03-03-2020  NaN
04-03-2020  NaN
05-03-2020  NaN
06-03-2020  NaN
07-03-2020  NaN
08-03-2020  100.0
09-03-2020  300.0
10-03-2020  NaN  

df.rolling(3,on='Date').mean()之后 我得到了输出

    Date        Price
    01-03-2020  NaN
    02-03-2020  NaN
    03-03-2020  NaN
    04-03-2020  NaN
    05-03-2020  NaN
    06-03-2020  NaN
    07-03-2020  NaN
    08-03-2020  NaN
    09-03-2020  NaN
    10-03-2020  NaN

我想要的输出:

    Date        Price
    03-03-2020  150.0
    04-03-2020  200.0
    05-03-2020  NaN
    06-03-2020  NaN
    07-03-2020  NaN
    08-03-2020  100.0
    09-03-2020  200.0
    10-03-2020  200.0

【问题讨论】:

  • 所以删除的解决方案不起作用? stackoverflow.com/questions/66688300/… ?
  • 该问题被标记为重复,因此被删除。你能在这里回答吗?
  • 我没有创建新帐户。实际上,我和我的同事都在研究同一个问题。他无法发布问题,这就是我这样做的原因。
  • 好的,那我希望能找到解决办法。
  • 如果您有任何解决方案,请发布..

标签: python pandas dataframe


【解决方案1】:

您可以使用np.nanmean()

df.rolling(3,on='Date').apply(lambda x : np.nanmean(x))

【讨论】:

  • 通过此解决方案,我无法获得问题中提供的确切预期解决方案
猜你喜欢
  • 2023-03-25
  • 2022-01-14
  • 1970-01-01
  • 2011-07-25
  • 2017-11-12
  • 2017-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多