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.

  • Einfügen eines Elements in ein Tupel
  • Essiggurke mit benutzerdefinierten Klassen
  • Python 2.4.3: ConfigParser.NoSectionError: Kein Abschnitt: 'formatters'
  • OpenCV 2.4.1 - Berechnen von SURF-Deskriptoren in Python
  • Beste Weg, um ein kartesisches Produkt mit Etiketten in Python aufzählen?
  • Python, Ctypes, mehrdimensionales Array
  • In PyQt, wie kann ein Terminal in ein Fenster eingebettet werden?
  • Python ImportError Lade-Modul im Unterordner
  • 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.