J'ai un dataframe avec des temps et des prix Unix dedans. Je souhaite convertir la colonne d'index pour qu'elle s'affiche en dates lisibles par l'homme.
Donc, par exemple, j'ai date
comme 1349633705
dans la colonne d'index mais je voudrais qu'il s'affiche comme 10/07/2012
(ou au moins 10/07/2012 18:15
).
Pour un certain contexte, voici le code avec lequel je travaille et ce que j'ai déjà essayé:
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
Comme vous pouvez le voir, j'utilise
df.date = df.date.apply(lambda d: datetime.strptime(d, "%Y-%m-%d"))
ici ce qui ne fonctionne pas car je travaille avec des entiers, pas des chaînes. Je pense que je dois utiliser datetime.date.fromtimestamp
mais je ne sais pas trop comment appliquer cela à l'ensemble de df.date
.
Merci.
la source
OverflowError: Python int too large to convert to C long
.lambda x: x/1000.0
, ouunit='ms'
.Si vous essayez d'utiliser:
et recevez une erreur:
Cela signifie que le
DATE_FIELD
n'est pas spécifié en secondes.Dans mon cas, c'était milli secondes -
EPOCH time
.La conversion a fonctionné en utilisant ci-dessous:
la source
En supposant que nous avons importé
pandas as pd
etdf
est notre base de donnéestravaille pour moi.
la source
Alternativement, en modifiant une ligne du code ci-dessus:
Cela devrait également fonctionner.
la source