Rellene los datos de pandas faltantes con el valor no faltante anterior, agrupados por clave

Estoy tratando con pandas DataFrames como esto:

   id    x
0   1   10
1   1   20
2   2  100
3   2  200
4   1  NaN
5   2  NaN
6   1  300
7   1  NaN

Me gustaría reemplazar cada NAN 'x' con la anterior 'N' no NAN de una fila con el mismo valor 'id':

   id    x
0   1   10
1   1   20
2   2  100
3   2  200
4   1   20
5   2  200
6   1  300
7   1  300

¿Hay alguna forma sencilla de hacer esto sin hacer un bucle manual sobre las filas?

Respuestas a la pregunta(2)

Su respuesta a la pregunta