Interpolation ist einfach in Pandas mit df.interpolate()
gibt es eine Methode in Pandas, die mit der gleichen Eleganz etwas wie extrapolieren. Ich weiß, dass meine Extrapolation an ein Polynom zweiten Grades angepasst ist.Pandas Extrapolation von Polynom
6
A
Antwort
1
"Mit der gleichen Eleganz" ist eine etwas hohe Ordnung, aber das kann getan werden. Soweit mir bekannt ist, müssen Sie die extrapolierten Werte manuell berechnen. Es ist sehr unwahrscheinlich, dass diese Werte sehr aussagekräftig sind, es sei denn, die Daten, auf denen Sie arbeiten, entsprechen tatsächlich einem Gesetz der Form des Interpolanten.
Zum Beispiel, da Sie ein Polynom zweiten Grades fit angefordert:
import numpy as np
t = df["time"]
dat = df["data"]
p = np.poly1d(np.polyfit(t,data,2))
Jetzt p (t) ist der Wert des Best-Fit-Polynom zum Zeitpunkt t.
0
Extrapolation
dieses answer für Sie, wie die Werte der einzelnen Spalten eines DataFrame
mit einem 3rd order polynomialextrapolate. A different order (e.g. 2nd order) polynomial kann leicht durch Änderung func()
verwendet werden.
Snippet vom answer
# Function to curve fit to the data def func(x, a, b, c, d): return a * (x ** 3) + b * (x ** 2) + c * x + d # Initial parameter guess, just to kick off the optimization guess = (0.5, 0.5, 0.5, 0.5) # Create copy of data to remove NaNs for curve fitting fit_df = df.dropna() # Place to store function parameters for each column col_params = {} # Curve fit each column for col in fit_df.columns: # Get x & y x = fit_df.index.astype(float).values y = fit_df[col].values # Curve fit column and get curve parameters params = curve_fit(func, x, y, guess) # Store optimized parameters col_params[col] = params[0] # Extrapolate each column for col in df.columns: # Get the index values for NaNs in the column x = df[pd.isnull(df[col])].index.astype(float).values # Extrapolate those points with the fitted function df[col][x] = func(x, *col_params[col])
Verwandte Themen
- 1. Extrapolation Zeitreihe
- 2. Cubic Spline Extrapolation
- 3. Google Spread Sheet Extrapolation
- 4. Umgebungsvariable für nginx conf Extrapolation
- 5. Wie kann ich ein Polynom einem Polynom zuordnen?
- 6. ein Polynom Differenzierung
- 7. numpy berechnet polynom effizient
- 8. Matlab - Schlecht konditionierte Polynom
- 9. CRC-Berechnung Umwandlung von Eingabe und Polynom
- 10. Drucken von Polynom-Gleichung in Prolog
- 11. Multivariate Polynom-Regression mit numpy
- 12. 2d numpy.power für Polynom-Erweiterung
- 13. N-Polynom Addition funktioniert nicht
- 14. eine n Montage bestellt Polynom
- 15. Linest Polynom Regression in Excel VBA
- 16. Scipy Fitting Polynom-Modell zu einigen Daten
- 17. 3D-Extrapolation in Python (im Grunde, scipy.griddata extrapoliert)
- 18. Finden von Polynom Wurzeln mit Python - Mögliche Numpy Extension Bug
- 19. Liste alle Lösungen zur Lösung von Polynom in r
- 20. Äquivalent von `polyfit` für ein 2D-Polynom in Python
- 21. Resultierende eines Polynom mit x^n-1
- 22. Polynom an die Maxima einer Funktion anpassen
- 23. JULIA: Was ist Erro! Lagrange-Polynom-Funktion
- 24. Divide Polynom in gleicher Länge in OpenCV
- 25. Wie plotten Sie Polynom in R?
- 26. Analyzing Zeitkomplexität (Poly log vs Polynom)
- 27. Gegeben f (x) ein Polynom im DocPolynom-Format, wie findet man f (x-1) als Polynom? (Matlab)
- 28. "Polynom zu groß für FFT" Fehler auf NTL
- 29. JS dataTables von Pandas
- 30. Vorteile von Pandas Multiindex?
Sie müssen möglicherweise 'scipy.interpolate.UnivariateSpline' verwenden, die eine' ext' Option hat. – askewchan
Related: [Werte in Pandas DataFrame extrapolieren] (https://stackoverflow.com/questions/22491628/extrapolate-values-in-pandas-dataframe), aber ein einfacher Fall, der durch eine andere Methode gelöst werden konnte. – askewchan
Es gibt jetzt eine Antwort (http://stackoverflow.com/a/35959909/2087463) auf diese Frage mit Einzelheiten zur Polynom-Extrapolation. – tmthydvnprt