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.

  • Die Regressionslinie zu bekommen, um von einer Pandas-Regression zu plotten
  • Obere und rechte Achse in Matplotlib entfernen, nachdem sie Margen vergrößert haben?
  • Pandas und matplotlib: Kombinieren Sie zwei Plots zu einem Legende
  • Zeichnen Sie eine Schwarz-Weiß-Binärkarte in Matplotlib
  • Plotten Wörterbücher in einem Wörterbuch in Myplotlib Python
  • Pandas: mehrere Histogramme kategorischer Daten
  • 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.