2016-03-23 6 views
4

Von einer Quelle ich einige Daten im JSON-Format abrufen. Ich möchte diese Daten (Messungen in Zeit) als Textdatei speichern. Wiederholt möchte ich die gleiche Quelle gehen und sehen, ob neue Messungen verfügbar sind, wenn ich sie zu den anderen Messungen hinzufügen möchte.Timestamp String (Unix-Zeit) zu Datetime oder Pandas.Timestamp

Die Daten, die ich bekommen sieht wie folgt aus:

{"xyz":[{"unixtime":"1458255600","time":"00:00","day":"18\/03","value":"11","paramlabel":"30-500 mHz","popupcorr":"550","iconnr":"7","paramname":"30-500 mHz"},{"unixtime":"1458256200","time":"00:10","day":"18\/03","value":"14","paramlabel":"30-500 mHz","popupcorr":"550","iconnr":"7","paramname":"30-500 mHz"},etc.]} 

ich diese Daten in eine Pandas Datenrahmen laden, um mit ihm leichter zu arbeiten. Wenn ich dies jedoch in einen Datenrahmen lade, werden alle Spalten als Strings behandelt. Wie kann ich sicherstellen, dass die unixtime-Spalte als Zeitstempel behandelt wird (so dass ich in eine datetime konvertieren kann)?

Antwort

5

Verwendung to_datetime und übergeben unit='s' den Wert als epoche Zeit zu behandeln, nachdem die dtype zu int Verwendung astype Umwandlung:

df['unixtime'] = pd.to_datetime(df['unixtime'].astype(int), unit='s') 

Beispiel:

In [162]: 
pd.to_datetime(1458255600, unit='s') 

Out[162]: 
Timestamp('2016-03-17 23:00:00')