Pandas interpolieren innerhalb einer Gruppe durch

Ich habe einen Datenrahmen mit folgenden Informationen:

    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

Ich möchte die Werte im Datenrahmen basierend auf den Indizes interpolieren,aber nur innerhalb jeder Dateigruppe.

Zum Interpolieren würde ich normalerweise

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

Und zur Gruppe mache ich

grouped = df.groupby("filename")

Ich möchte, dass der interpolierte Datenrahmen wie folgt aussieht:

    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

Wo die NaNs zum Zeitpunkt t = 6 noch vorhanden sind, da sie die ersten Elemente in der Gruppe file2 sind.

Ich vermute, ich muss "bewerben" verwenden, konnte aber nicht genau herausfinden, wie ...

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

Jede Hilfe wäre dankbar.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage