我有一個以下資料框,其中包含以下紀元時間作為列 pandas
0 1602206700206666
1 1602206700206668
2 1602206700206670
3 1602206700206672
4 1602206700206674
我正在嘗試將其轉換為日期時間。以下是我使用的代碼:
df['time'] = pd.to_datetime(df['time'], unit="ns", utc=True)
但是,我得到了一個奇怪的輸出
0 1970-01-19 13:03:26.700206666 00:00
1 1970-01-19 13:03:26.700206668 00:00
2 1970-01-19 13:03:26.700206670 00:00
3 1970-01-19 13:03:26.700206672 00:00
4 1970-01-19 13:03:26.700206674 00:00
這很奇怪,因為日期不應該是 1970-01,而應該是 2020-10。任何想法如何解決這一問題?
uj5u.com熱心網友回復:
它們是unix時間戳,自紀元以來以毫秒為單位。Pandas 在整數上使用納秒。所以嘗試:
pd.to_datetime(df['time']*1000)
輸出:
0 2020-10-09 01:25:00.206666
1 2020-10-09 01:25:00.206668
2 2020-10-09 01:25:00.206670
3 2020-10-09 01:25:00.206672
4 2020-10-09 01:25:00.206674
Name: time, dtype: datetime64[ns]
uj5u.com熱心網友回復:
您的時間以微秒為單位,因此請使用us而不是ns:
df['time'] = pd.to_datetime(df['time'], unit="us", utc=True)
print (df)
time
0 2020-10-09 01:25:00.206666 00:00
1 2020-10-09 01:25:00.206668 00:00
2 2020-10-09 01:25:00.206670 00:00
3 2020-10-09 01:25:00.206672 00:00
4 2020-10-09 01:25:00.206674 00:00
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/333457.html
上一篇:按特定列值對資料框進行分組
