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

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