我有一只熊猫的数据
import pandas as pd
import numpy as np
df = pd.DataFrame({
'id': [1,2,3,4,5],
'rate': [0.5,0.4,0.5,np.nan,np.nan],
})我想用前三个值的滚动平均值替换rate列中的NaNs。
预期产出:

发布于 2021-12-30 01:20:52
您可以尝试使用rolling替换isna()值。
df.loc[df.rate.isna(),'rate'] = df['rate'].rolling(3, min_periods=1).mean()发布于 2021-12-30 02:12:28
试一试圆滚法,除了记住圆()的python行为,也就是the fact that most decimal fractions can’t be represented exactly as a float
df =df.assign(rate=np.where(df['rate'].isna(),round(df['rate'].rolling(3,1).mean(),1),df['rate']))https://stackoverflow.com/questions/70526485
复制相似问题