Saya memiliki kerangka data dengan waktu unix dan harga di dalamnya. Saya ingin mengubah kolom indeks agar ditampilkan dalam tanggal yang dapat dibaca manusia.
Jadi misalnya saya memiliki date
seperti 1349633705
di kolom indeks tetapi saya ingin itu ditampilkan sebagai 10/07/2012
(atau setidaknya 10/07/2012 18:15
).
Untuk beberapa konteks, berikut adalah kode yang saya kerjakan dan yang sudah saya coba:
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
Seperti yang Anda lihat, saya menggunakan di
df.date = df.date.apply(lambda d: datetime.strptime(d, "%Y-%m-%d"))
sini yang tidak berfungsi karena saya bekerja dengan integer, bukan string. Saya pikir saya perlu menggunakan datetime.date.fromtimestamp
tetapi saya tidak begitu yakin bagaimana menerapkan ini ke seluruh df.date
.
Terima kasih.
sumber
OverflowError: Python int too large to convert to C long
.lambda x: x/1000.0
, atauunit='ms'
.Jika Anda mencoba menggunakan:
dan menerima kesalahan:
Ini berarti
DATE_FIELD
tidak ditentukan dalam hitungan detik.Dalam kasus saya, itu mili detik -
EPOCH time
.Konversi bekerja menggunakan di bawah ini:
sumber
Dengan asumsi kami mengimpor
pandas as pd
dandf
kerangka data kamibekerja untuk saya.
sumber
Atau, dengan mengubah satu baris kode di atas:
Ini juga harus bekerja.
sumber