使用熊猫填充具有连续值的行以及位于上方的行

Kal*_*nta 7 python dataframe pandas

我有一个像这样的数据框:

df

col1    col2
 1        A 
 3        B
 6        A
 10       C
Run Code Online (Sandbox Code Playgroud)

我想以这种方式从df上方创建一个数据帧,如果col1值不连续,它将使用下一个col1值创建另一行,而col2值将恰好是上述值。

我正在寻找的数据框应该是

df
col1    col2
 1        A
 2        A
 3        B
 4        B
 5        B
 6        A
 7        A
 8        A
 9        A
 10       C
Run Code Online (Sandbox Code Playgroud)

我可以使用简单的for循环来做到这一点,但是有没有什么pythonic方式可以使用pandas最有效地做到这一点?

ank*_*_91 5

这是使用set_index()andreindex和 的一种方法ffill

df.set_index('col1').reindex(range(df.col1.min(),df.col1.max()+1)).ffill().reset_index()

#df.set_index('col1').reindex(range(df.col1.min(),df.col1.max()+1),method='ffill')\
                                                     #.reset_index()
Run Code Online (Sandbox Code Playgroud)
   col1 col2
0     1    A
1     2    A
2     3    B
3     4    B
4     5    B
5     6    A
6     7    A
7     8    A
8     9    A
9    10    C
Run Code Online (Sandbox Code Playgroud)