2016-07-08 27 views
3

ich eine Datetime-Spalte mit ziemlich zufälligen Schritten von Zeit haben, das Format ist:Plotten Datenrahmen Spalte - Datumzeit

time 
2016-07-08 11:29:30 
2016-07-08 11:30:02 

Jetzt habe ich es in Datetime zu konvertieren:

df['time2'] = pd.to_datetime(df['time']) 

Dann will ich es plotten mit matplotlib, aber es funktioniert nicht:

plt.plot(df.['time'],df['y']) 

ich habe versucht, es in einen int konvertieren, aber dann kann ich nicht herausfinden, wie um es beim Plotten zu formatieren

Jede Hilfe wäre toll!

+0

Was der Rest Ihrer Daten aussehen wird? Wahrscheinlich müssen Sie Ihre Daten zuerst "resample". – Alexander

Antwort

5

Ich glaube, Sie Series.plot, so erste set_index aus Spalte time verwenden:

import pandas as pd 
import matplotlib.pyplot as plt 

df = pd.DataFrame({'y': {0: 1, 1: 2, 2: 4}, 
        'time': {0: '2016-07-08 11:29:30', 1: '2016-07-08 11:30:02', 2: '2016-07-08 11:31:52'}}) 

print (df) 
        time y 
0 2016-07-08 11:29:30 1 
1 2016-07-08 11:30:02 2 
2 2016-07-08 11:31:52 4 

df['time'] = pd.to_datetime(df.time) 

print (df.set_index('time').y) 
time 
2016-07-08 11:29:30 1 
2016-07-08 11:30:02 2 
2016-07-08 11:31:52 4 
Name: y, dtype: int64 

df.set_index('time').y.plot() 
plt.show() 

graph

Eine andere Lösung ist:

df['time'] = pd.to_datetime(df.time) 
df.plot(x='time', y='y') 
plt.show() 
+0

Wie funktioniert es? – jezrael

+0

Funktioniert großartig! Danke für deine Hilfe. Der Teil, den ich vermisste, war die Anweisung set_index. – thefett

Verwandte Themen