Python 如果行不是nan,则将前几个角色的值设为行的值

Python 如果行不是nan,则将前几个角色的值设为行的值,python,pandas,Python,Pandas,我有一个数据帧,如下所示: 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)行的值,从而成为具有值的行的值?例如,如果x=4,则将第20-23行设为70,第32-35行设为50,第87-90行设为81,第95-98行设为3 谢谢 如果缺少另一个值,请使用带限制参

我有一个数据帧,如下所示:

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)行的值,从而成为具有值的行的值?例如,如果x=4,则将第20-23行设为70,第32-35行设为50,第87-90行设为81,第95-98行设为3


谢谢

如果缺少另一个值,请使用带限制参数的回填:

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

你是对的!我已经修改了这个问题。谢谢你指出错误。@MATTHEW-谢谢,很乐意帮忙。如果适合你,别忘了接受答案!:)