У меня есть датафрейм с временами unix и ценами в нем. Я хочу преобразовать столбец индекса так, чтобы он отображался в удобочитаемых датах.
Так, например, у меня есть date
как 1349633705
в столбце индекса, но я бы хотел, чтобы оно отображалось как 10/07/2012
(или по крайней мере 10/07/2012 18:15
).
Для некоторого контекста вот код, с которым я работаю и что я уже пробовал:
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
Как видите, я использую
df.date = df.date.apply(lambda d: datetime.strptime(d, "%Y-%m-%d"))
здесь, что не работает, поскольку я работаю с целыми числами, а не со строками. Я думаю, что мне нужно использовать, datetime.date.fromtimestamp
но я не совсем уверен, как применить это ко всему df.date
.
Спасибо.
python
pandas
unix-timestamp
dataframe
WA Карнеги
источник
источник
OverflowError: Python int too large to convert to C long
.lambda x: x/1000.0
, илиunit='ms'
.Если вы попробуете использовать:
и получите ошибку:
Это означает, что
DATE_FIELD
не указывается в секундах.В моем случае это были миллисекунды -
EPOCH time
.Преобразование работало с использованием ниже:
источник
Предполагая, что мы импортировали,
pandas as pd
иdf
это наш фрейм данныхработает для меня.
источник
В качестве альтернативы, изменив строку приведенного выше кода:
Он тоже должен работать.
источник