Los pandas se interpolan dentro de un grupo

Tengo un marco de datos con la siguiente información:

    filename    val1    val2
t                   
1   file1.csv   5       10
2   file1.csv   NaN     NaN
3   file1.csv   15      20
6   file2.csv   NaN     NaN
7   file2.csv   10      20
8   file2.csv   12      15

Me gustaría interpolar los valores en el marco de datos en función de los índices,pero solo dentro de cada grupo de archivos.

Para interpolar, normalmente haría

df = df.interpolate(method="index")

Y al grupo, lo hago

grouped = df.groupby("filename")

Me gustaría que el marco de datos interpolado se vea así:

    filename    val1    val2
t                   
1   file1.csv   5       10
2   file1.csv   10      15
3   file1.csv   15      20
6   file2.csv   NaN     NaN
7   file2.csv   10      20
8   file2.csv   12      15

Donde los NaN todavía están presentes en t = 6 ya que son los primeros elementos en el grupo file2.

Sospecho que necesito usar "aplicar", pero no he podido averiguar exactamente cómo ...

grouped.apply(interp1d)
...
TypeError: __init__() takes at least 3 arguments (2 given)

Cualquier ayuda sería apreciada.

Respuestas a la pregunta(3)

Su respuesta a la pregunta