2017-06-30 5 views
1

Ich habe eine JSON-Datendatei mit einem leider benannten "timestamp" -Feld. Der Zeitstempel wird formatiert als "%y%m%d%H%M%S" aber pandas.json_read() interpretiert dies als Zeitpunkt UNIX-Epoche so das Feld 1975Kann ich die Standardzeitstempelinterpretation in Pandas ändern read_json

als irgendwann interpretiert wird Gibt es eine Möglichkeit, das read_json Verhalten außer Kraft zu setzen einen Formatbezeichner zu schaffen - ähnlich wie pandas.to_json (..., date_format = "..."))?

import StringIO 
import pandas as pd 
my_json_data='''[ 
    { 
    "itemId": "alpha:136:1", 
    "testTime": 12.449, 
    "workTime": 152.5, 
    "project": "alpha", 
    "user": "user100021-su7d", 
    "timestamp": "170520161430", 
    "accuracy": 1 
    }, 
    { 
    "itemId": "alpha:136:10", 
    "testTime": 4.114, 
    "workTime": 152.5, 
    "project": "alpha", 
    "user": "user100021-su7d", 
    "timestamp": "170520161430", 
    "accuracy": 0.8890000000000001 
    }, 
    { 
    "itemId": "alpha:136:100", 
    "testTime": 5.114, 
    "workTime": 43.4, 
    "project": "alpha", 
    "user": "user100021-su7d", 
    "timestamp": "170522150338", 
    "accuracy": 0.875 
    } 
] 
''' 

my_df = pd.read_json(StringIO.StringIO(my_json_data)) 
my_df["timestamp"] 

Ausgabe lautet:

0 1975-05-28 14:42:41.430 
1 1975-05-28 14:42:41.430 
2 1975-05-28 15:15:50.338 
Name: timestamp, dtype: datetime64[ns] 

Antwort

0

Leider konnte ich eine ähnliche Option nicht in der Pandas Dokumentation finden, aber diese Abhilfe tun sollten:

my_df = pd.read_json(StringIO.StringIO(my_json_data),convert_dates = False) 
my_df['timestamp'] = pd.to_datetime(my_df['timestamp'],format='%y%m%d%H%M%S') 
print my_df["timestamp"] 

Ich bin einfach fragen Pandas Die Zeichenfolgen werden beim Lesen der JSON nicht bis zum Datum verarbeitet, und später manuell durch Angabe des Formats. Dies sollte die Daten korrekt anzeigen.

Hoffe, das hilft!

+0

danke - das macht, was ich wollte. es scheint jedoch etwas zu sein, das durch die Konvertierungsoptionen erlaubt sein sollte. – cgflyer

Verwandte Themen