我有個問題。我有一組日期的數值,但顯然日期格式錯誤并且來自 SAS。例如,如果格式正確,我的值 5893 在 SAS 19.02.1976 中。我想在 Python/PySpark 中實作這一點。從我發現到現在,有一個函式fromtimestamp。
但是,當我這樣做時,它給出了錯誤的日期:
value = 5893
date = datetime.datetime.fromtimestamp(value)
print(date)
1970-01-01 02:38:13
任何獲得正確日期的建議?謝謝!:-) 編輯:當這個操作被強加給一個資料框列而不是一個變數時,代碼會是什么樣子?
uj5u.com熱心網友回復:
就 SAS 而言,紀元是 1960 年 1 月 1 日。您擁有的數字 (5893) 是自該紀元以來經過的天數。所以:
from datetime import timedelta, date
print(date(1960, 1, 1) timedelta(days=5893))
...會給你想要的結果
uj5u.com熱心網友回復:
import numpy as np
import pandas as pd
ser = pd.Series([19411.0, 19325.0, 19325.0, 19443.0, 19778.0])
ser = pd.to_timedelta(ser, unit='D') pd.Timestamp('1960-1-1')
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/383592.html
