如果该行不是nan,则使前几个角色的值成为该行的值

时间:2018-10-02 08:16:14

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

谢谢!

1 个答案:

答案 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