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.