Warum hat meine Handlung Kreuzungszeilen, wenn ich den Index von String in DateTime konvertiere?Python

Python-Programme
Guest
 Warum hat meine Handlung Kreuzungszeilen, wenn ich den Index von String in DateTime konvertiere?

Post by Guest »

Ich versuche, eine Zeitreihe mit pt.plot () zu zeichnen, aber ich beobachte ständig eine seltsame Ausgabe. Eine Stichprobe des Datensatzes, das ich unten bereitstellt (der gesamte Datensatz hat ungefähr 150.000 Einträge). Eine der Spalten dieses Datensatzes besteht aus Zeitwerten und dient als Index. Abhängig davon, ob ich den Index von einer Zeichenfolge in ein DateTime -Objekt konvertiere oder nicht, erhalte ich zwei verschiedene Ausgänge, wenn ich gegen die Zielvariable aufzeigt. > String -Index < /p>

Code: Select all

import matplotlib.pyplot as plt
import pandas as pd

sample_df = pd.DataFrame()
sample_df["Date"] = [ "2002-12-31 01:00:00", "2002-06-06 10:00:00", "2003-11-10 19:00:00",
"2003-04-15 04:00:00", "2004-09-19 14:00:00", "2004-02-24 23:00:00",
"2005-07-30 08:00:00", "2005-01-03 17:00:00", "2006-06-08 02:00:00",
"2007-11-12 11:00:00", "2007-04-18 20:00:00", "2008-09-21 06:00:00",
"2008-02-26 15:00:00", "2009-08-03 00:00:00", "2009-01-05 09:00:00",
"2010-06-11 19:00:00", "2011-11-14 04:00:00", "2011-04-20 13:00:00",
"2012-09-24 23:00:00", "2012-02-28 08:00:00", "2013-08-04 17:00:00",
"2013-01-07 02:00:00", "2014-06-13 09:00:00", "2015-11-17 18:00:00",
"2015-04-22 01:00:00", "2016-09-26 09:00:00", "2016-03-02 18:00:00",
"2017-08-06 01:00:00", "2017-01-10 10:00:00", "2018-01-16 19:00:00" ]
sample_df["Energy_MW"] = [ 26498.0, 39167.0, 36614.0, 21837.0, 26644.0,
33574.0, 30255.0, 33781.0, 24344.0, 34708.0,
33996.0, 21127.0, 36255.0, 31982.0, 35448.0,
37066.0, 22116.0, 31326.0, 26569.0, 33565.0,
34649.0, 25709.0, 33516.0, 33032.0, 22333.0,
28064.0, 33905.0, 25304.0, 41505.0, 39543.0 ]
sample_df = sample_df.set_index("Date")

# Basic plot.
fig = plt.figure( figsize = (10,5) )
plt.plot(sample_df.index, sample_df["Energy_MW"], 'b')
plt.grid(True)
plt.show()
Dies ist das Diagramm, das einem String -Index entspricht:

Szenario 2: DateTime Index
import matplotlib.pyplot as plt
import pandas as pd

sample_df = pd.DataFrame()
sample_df["Date"] = [ "2002-12-31 01:00:00", "2002-06-06 10:00:00", "2003-11-10 19:00:00",
"2003-04-15 04:00:00", "2004-09-19 14:00:00", "2004-02-24 23:00:00",
"2005-07-30 08:00:00", "2005-01-03 17:00:00", "2006-06-08 02:00:00",
"2007-11-12 11:00:00", "2007-04-18 20:00:00", "2008-09-21 06:00:00",
"2008-02-26 15:00:00", "2009-08-03 00:00:00", "2009-01-05 09:00:00",
"2010-06-11 19:00:00", "2011-11-14 04:00:00", "2011-04-20 13:00:00",
"2012-09-24 23:00:00", "2012-02-28 08:00:00", "2013-08-04 17:00:00",
"2013-01-07 02:00:00", "2014-06-13 09:00:00", "2015-11-17 18:00:00",
"2015-04-22 01:00:00", "2016-09-26 09:00:00", "2016-03-02 18:00:00",
"2017-08-06 01:00:00", "2017-01-10 10:00:00", "2018-01-16 19:00:00" ]
sample_df["Energy_MW"] = [ 26498.0, 39167.0, 36614.0, 21837.0, 26644.0,
33574.0, 30255.0, 33781.0, 24344.0, 34708.0,
33996.0, 21127.0, 36255.0, 31982.0, 35448.0,
37066.0, 22116.0, 31326.0, 26569.0, 33565.0,
34649.0, 25709.0, 33516.0, 33032.0, 22333.0,
28064.0, 33905.0, 25304.0, 41505.0, 39543.0 ]
sample_df = sample_df.set_index("Date")
sample_df.index = pd.to_datetime(sample_df.index)

# Basic plot.
fig = plt.figure( figsize = (10,5) )
plt.plot(sample_df.index, sample_df["Energy_MW"], 'b')
plt.grid(True)
plt.show()
< /code>
Und dies ist das Diagramm, das einem DateTime -Index entspricht: < /p>

Warum wird die Konvertierung in ein DateTime -Objekt die Ergebnisse drastisch verschlimmern? Wie löste ich das Problem? Bitte erklären Sie in einfachen Worten. Ich habe versucht, in beiden Szenarien grafische Ergebnisse zu erzielen, um die Quelle des Problems zu finden. Ich möchte einige Ideen sehen, wie Sie das richtige Diagramm erhalten, wenn auch der Index den richtigen Datentyp (DateTime) hat. Ich bin auch auf ein YouTube -Video gestoßen, das denselben Datensatz und die gleiche Zeitserie abdeckt. In dem Video habe ich trotz der Tatsache, dass der Index des Datenrahmens in den richtigen Datentyp konvertiert wurde>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post