我有一个像下面这样的数据框:
df = pd.DataFrame([np.nan]*99,columns = ['col1'])
df.loc[23] = 70
df.loc[35] = 50
df.loc[90] = 81
df.loc[98] = 3
如何使新列(col2)的值成为df col1的前几(x)行的值,成为具有value的行的值?例如,如果x = 4,则将20-23行设为70,将32-35行设为50,将87-90行设为81,并将95-98行设为3?
谢谢!
答案 0 :(得分:2)
如果缺少其他值,请使用回填和限制参数:
df1 = df.bfill(limit=3)
print (df1.tail(15))
col1
84 NaN
85 NaN
86 NaN
87 81.0
88 81.0
89 81.0
90 81.0
91 NaN
92 NaN
93 NaN
94 NaN
95 3.0
96 3.0
97 3.0
98 3.0