【问题标题】:Pandas ffill() with average of before missing value and after missing valuePandas ffill() 具有缺失值之前和缺失值之后的平均值
【发布时间】:2022-01-23 18:49:32
【问题描述】:

我有一个 pandas DataFrame,要求是通过将缺失值之前和缺失值之后的总和除以 3 并将结果添加到缺失值之前(这填充第一行 Nan 值)来填充一行中的 NaN 值)。第二个 NaN 是用缺失值之前和缺失值之后的总和 3 填充(与前面相同),但将结果添加到第一个填充的 NaN 值。

df = pd.DataFrame({'val': [1,np.nan,np.nan, 4, 5, np.nan, np.nan, 11, 1,2,6, np.nan, np.nan, 15]})

and the expected result is:

df = pd.DataFrame({'val': [1,2,3, 4, 5, 7, 9, 11, 1,2,6, 9, 12, 15]})

【问题讨论】:

  • 请举例说明
  • 您可以使用 shift 来获得前向和后向滞后,然后平均前向填充的结果。问题将是如果您之前或之后有多个缺失值

标签: python pandas dataframe


【解决方案1】:

你的逻辑其实就是interpolate默认的做法(method='linear'):

df.interpolate()

输出:

     val
0    1.0
1    2.0
2    3.0
3    4.0
4    5.0
5    7.0
6    9.0
7   11.0
8    1.0
9    2.0
10   6.0
11   9.0
12  12.0
13  15.0

【讨论】:

  • 嗨 mozway,谢谢。 df.interpolate(axis=1) 对我有用
猜你喜欢
  • 1970-01-01
  • 2017-01-03
  • 2020-05-30
  • 1970-01-01
  • 1970-01-01
  • 2019-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多