我有一個(gè) csv 文件,其中包含存儲(chǔ)時(shí)間戳的時(shí)間列。使用 vaex.from_csv() 方法將此文件轉(zhuǎn)換為 hdf5 格式后,時(shí)間列中的值是字符串。例如:df = vaex.open("data.csv.hdf5")time = df["time"].values[0]print(time)print(type(time))輸出是:2020-09-30 01:02:03<class 'str'>我嘗試將時(shí)間戳格式化為 ISO 8601,并存儲(chǔ)帶/不帶引號(hào)。結(jié)果是一樣的。從 csv 轉(zhuǎn)換為 hdf5 時(shí),是否有某種方法強(qiáng)制 vaex 將時(shí)間戳識(shí)別為日期時(shí)間(或 np.datetime64)?
1 回答

喵喔喔
TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
我認(rèn)為問題在于,當(dāng)您將數(shù)據(jù)從 csv 轉(zhuǎn)換為 hdf5 時(shí),數(shù)據(jù)類型是字符串。我的測(cè)試顯示保存和打開具有 datetime 和 timedelta 數(shù)據(jù)類型的 hdf5 沒有問題。
查看文件名,您可能使用了類似的內(nèi)容
df = vaex.read_csv(path_to_csv, convert=True)
在這種情況下,vaex(或 pandas,因?yàn)?code>read_csv只是帶有pd.read_csv
一些額外選項(xiàng)的包裝器)不知道列應(yīng)該是字符串還是日期時(shí)間,因此默認(rèn)情況下它選擇字符串,然后進(jìn)行傳播。
使用類似的東西
df = vaex.read_csv(path_to_csv, parse_dates=['my_date_column'], convert=True)
應(yīng)該可以解決問題。
如果我的假設(shè)是錯(cuò)誤的,只需在導(dǎo)出到 HDF5 之前確保所有數(shù)據(jù)類型都是您想要的。
添加回答
舉報(bào)
0/150
提交
取消