pandas 如何在python中将csv文件中保存为整型的时间数据转换为datetime

mspsb9vt  于 2023-02-11  发布在  Python
关注(0)|答案(2)|浏览(399)

我有csv文件,在“时间”列中,时间数据保存为整数类型,如

7
20
132
4321
123456
...

我必须在Python中转换数据时间

00:00:07
00:00:20
00:01:32
00:43:21
12:34:56
...

并且数据的大小几乎是250,000,,,
如何将此数字转换为日期时间?
我试过但失败了

change_time=str(int(df_NPA_2020['TIME'])).zfill(6)
change_time=change_time[:2]+":"+change_time[2:4]+":"+change_time[4:]
change_time

以及

change_time=df_NPA_2020['ch_time'] = df_NPA_2020['TIME'].apply(lambda x: pd.to_datetime(str(x), format='%H:%M:%S'))
j91ykkif

j91ykkif1#

就快到了,必须使用.astype(str)方法将列转换为字符串,而不是str(df_NPA_2020['TIME']),后者类似于print

df_NPA_2020['ch_time'] = pd.to_datetime(df_NPA_2020['TIME'].astype(str).str.zfill(6), format='%H%M%S').dt.time
print(df_NPA_2020)

# Output
     TIME             ch_time
0       7 1900-01-01 00:00:07
1      20 1900-01-01 00:00:20
2     132 1900-01-01 00:01:32
3    4321 1900-01-01 00:43:21
4  123456 1900-01-01 12:34:56
7xllpg7q

7xllpg7q2#

将数字解析为日期时间,然后设置其格式:

import pandas as pd

df = pd.DataFrame([7,20,132,4321,123456], columns=['Time'])
print(df)
df.Time = df.Time.apply(lambda x: pd.to_datetime(f'{x:06}', format='%H%M%S')).dt.strftime('%H:%M:%S')
print(df)

输出:

Time
0       7
1      20
2     132
3    4321
4  123456
       Time
0  00:00:07
1  00:00:20
2  00:01:32
3  00:43:21
4  12:34:56

相关问题