[英]how do i convert int64 column to datetime column
我有一個 pandas dataframe 列“時間”,如下所示:
array([43390, 43599, 43605, 43329, 43330, 43604, 43601, 43332, 43602,....43505], dtype=int64)
我如何將其轉換為日期時間格式? 我已經試過了
t_data["DATE"] = pd.to_datetime(t_data["DATE"].astype(str).str.zfill(6), format='%H%M%S').dt.time
但會導致錯誤
ValueError:未轉換的數據仍然存在:0
整數數組看起來像從 Excel 中提取的日期。 每個代表 base_date 之后的天數(在/大約 1901-01-01)。
這是一種在 pandas 中轉換為日期的方法:
date_offsets = [43390, 43599, 43605, 43329, 43330, 43604, 43601, 43332, 43602]
base_date = pd.Timestamp('1901-01-01') # check this!
dates = [
base_date + pd.DateOffset(date_offset)
for date_offset in date_offsets
]
print(dates[0:5])
[Timestamp('2019-10-19 00:00:00'), Timestamp('2020-05-15 00:00:00'), Timestamp('2020-05-21 00:00:00'), Timestamp('2019-08-19 00:00:00'), Timestamp('2019-08-20 00:00:00')]
請檢查基准日期!
一種使用pandas.Series.str.findall
和timedelta
的方法:
from datetime import timedelta
def parse(lis):
h, m, s = map(int, lis)
return timedelta(hours=h, minutes=m, seconds=s)
tmp = s.str.zfill(6).str.findall(".{2}")
tmp.apply(parse)
Output:
0 04:34:30
1 04:36:39
2 04:36:05
3 04:33:29
4 04:33:30
5 04:36:04
6 04:36:01
7 04:33:32
8 04:36:02
9 04:35:05
dtype: timedelta64[ns]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.