Ich habe einen Datenrahmen mit Unix-Zeiten und Preisen. Ich möchte die Indexspalte so konvertieren, dass sie in von Menschen lesbaren Daten angezeigt wird.
So habe ich zum Beispiel date
wie 1349633705
in der Indexspalte, aber ich möchte, dass es als 10/07/2012
(oder zumindest 10/07/2012 18:15
) angezeigt wird .
In einigen Zusammenhängen ist hier der Code, mit dem ich arbeite, und was ich bereits versucht habe:
import json
import urllib2
from datetime import datetime
response = urllib2.urlopen('http://blockchain.info/charts/market-price?&format=json')
data = json.load(response)
df = DataFrame(data['values'])
df.columns = ["date","price"]
#convert dates
df.date = df.date.apply(lambda d: datetime.strptime(d, "%Y-%m-%d"))
df.index = df.date
Wie Sie sehen, verwende ich
df.date = df.date.apply(lambda d: datetime.strptime(d, "%Y-%m-%d"))
hier, was nicht funktioniert, da ich mit ganzen Zahlen und nicht mit Zeichenfolgen arbeite. Ich denke, ich muss verwenden, datetime.date.fromtimestamp
aber ich bin nicht ganz sicher, wie ich das auf das Ganze anwenden soll df.date
.
Vielen Dank.
quelle
OverflowError: Python int too large to convert to C long
.lambda x: x/1000.0
oderunit='ms'
.Wenn Sie versuchen,:
und erhalte einen Fehler:
Dies bedeutet, dass das
DATE_FIELD
nicht in Sekunden angegeben wird.In meinem Fall waren es Millisekunden -
EPOCH time
.Die Konvertierung funktionierte wie folgt:
quelle
Angenommen, wir haben importiert
pandas as pd
unddf
sind unser Datenrahmenfunktioniert bei mir.
quelle
Alternativ können Sie eine Zeile des obigen Codes ändern:
Es sollte auch funktionieren.
quelle