TypeError: nicht unterstützter Operand Typ (s) für +: 'Timestamp' und 'float'

ich habe,

x = [2017-06-07, 2017-07-19] y = [155.98, 151.42] 

Ich möchte eine Gerade zeichnen und den y-Intercept (3. Punkt) finden. Denn jetzt benutze die Polynom-Fit-Methode zu einer Zuglinie.

 x = [2017-06-07, 2017-07-19] y = [155.98, 151.42] coefficients = np.polyfit(x, y, 1) polynomial = np.poly1d(coefficients) x_axis = np.linspace(2017-06-07, 2017-07-19 + 42 ,3) #linspace(start, end, num) y_axis = polynomial(x_axis) 3rd_y_intercept = y_axis[2] plt.plot(x_axis, y_axis) plt.plot(x[0], y[0], 'go') plt.plot(x[1], y[1], 'go') plt.show() 

Aber ich bekomme Fehler:

Traceback (letzter Anruf zuletzt):

Datei "D: /Coding/Line.py", Zeile 3, in

Koeffizienten = np.polyfit (x, y, 1)

Datei "C: \ Benutzer \ Arjun \ Anaconda3 \ lib \ site-packages \ numpy \ lib \ polynomial.py", Zeile 546, in polyfit x = NX.asarray (x) + 0.0

TypeError: nicht unterstützter Operand Typ (s) für +: 'Timestamp' und 'float' Aber ich weiß nicht, wie man den Index des Typs Timestamp umwandelt, um ihn im Polynom zu verwenden.

Anmerkung: Die x-Koordinaten werden aus dem Dataframe-Index abgeleitet. Und benutze das datetime module. Bitte helfen Sie, und bin bereit, verschiedene Methode zu verwenden, um Linie anstelle von Polynom-Fit zu zeichnen.

  • Matplotlib zeigt Parasitenachsen mit OO API
  • Erstellen von quadratischen Teilplätzen (gleicher Höhe und Breite) in Matplotlib
  • Ändern des Seitenverhältnisses von Subplots in Matplotlib
  • Plotten von Datenpunkten, wo sie in eine Verteilung fallen
  • Pandas-Plot überlagert nicht
  • Plotten eines Hyperbolids
  • 2 Solutions collect form web for “TypeError: nicht unterstützter Operand Typ (s) für +: 'Timestamp' und 'float'”

    np.polyfit erwartet eindeutig reine numerische Werte. Du kannst dich so umwandeln:

     coefficients = np.polyfit(np.asarray(x).astype(float), y, 1) 

    Das wird deine Zeitstempel auf irgendeine Art von Epochenzeit umwandeln, und dann kannst du die Passform machen und wieder in Zeitstempel umwandeln, wenn du musst (wahrscheinlicher, dass du andere X-Werte in Floats mit der gleichen Logik umwandelst, damit du Prognosen mit dem machen kannst Modell).

    Wenn die Funktion nicht datetimes unterstützt, dann kann es am einfachsten sein, sie in floats (zB Sekunden seit t0) zu konvertieren.

    Python ist die beste Programmiersprache der Welt.