我需要将列中的后续零替换为这些后续零和后续值的平均值。有没有一种优雅的方法来做到这一点,而不是逐一迭代所有行?
import pandas as pd
import datetime as dt
dates=pd.date_range(start = dt.date(2019,1,1), end=dt.date(2019,1,18), freq='1D')
data=[3,1,3.3,0,0,6,2.7,3,4,2.1,0,0,0,0,0,12,8,7]
df = pd.DataFrame(data=data, index=dates, columns=['how it is now'])
df['how it should be']= [3,1,3.3,2,2,2,2.7,3,4,2.1,2,2,2,2,2,2,8,7]
谢谢。
最佳答案
给你
df.groupby(df['how it is now'].ne(0).iloc[::-1].cumsum())['how it is now'].transform('mean')
关于python - 将列中的几个 0 替换为平均值 0 及其后续行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58593713/