gpt4 book ai didi

python - Pandas 将列转换为时间

转载 作者:太空宇宙 更新时间:2023-11-04 00:20:43 24 4
gpt4 key购买 nike

这是我的DF

             Start-Time Running-Time Speed-Avg HR-Avg
0 2016-12-18 10:8:14 0:24:2 20 138
1 2016-12-18 10:8:14 0:24:2 20 138
2 2016-12-23 8:52:36 0:31:19 16 134
3 2016-12-23 8:52:36 0:31:19 16 134
4 2016-12-25 8:0:51 0:30:10 50 135
5 2016-12-25 8:0:51 0:30:10 50 135
6 2016-12-26 8:41:26 0:10:1 27 116
7 2016-12-26 8:41:26 0:10:1 27 116
8 2017-1-7 11:16:9 0:26:15 22 124
9 2017-1-7 11:16:9 0:26:15 22 124
10 2017-1-10 19:2:54 0:53:51 5 142
11 2017-1-10 19:2:54 0:53:51 5 142

我一直在尝试将此列格式化为H:M:S 格式使用

timeDF=(pd.to_datetime(cleanDF['Running-Time'],format='%H:%M:%S'))

但我收到了 ValueError: time data '0:24:2' does not match format '%M:%S' (match) 这个错误

提前谢谢你。

最佳答案

尾随空格有问题,所以需要 str.strip :

或者如果通过 read_csv 从文件创建 DataFrame添加参数 skipinitialspace=True:

cleanDF = pd.read_csv(file, skipinitialspace = True)

timeDF=(pd.to_datetime(cleanDF['Running-Time'].str.strip(), format='%H:%M:%S'))
print (timeDF)
0 1900-01-01 00:24:02
1 1900-01-01 00:24:02
2 1900-01-01 00:31:19
3 1900-01-01 00:31:19
4 1900-01-01 00:30:10
5 1900-01-01 00:30:10
6 1900-01-01 00:10:01
7 1900-01-01 00:10:01
8 1900-01-01 00:26:15
9 1900-01-01 00:26:15
10 1900-01-01 00:53:51
11 1900-01-01 00:53:51
Name: Running-Time, dtype: datetime64[ns]

但也许更好的方法是通过 to_timedelta 将其转换为 timedeltas :

timeDF=(pd.to_timedelta(cleanDF['Running-Time'].str.strip()))
print (timeDF)
0 00:24:02
1 00:24:02
2 00:31:19
3 00:31:19
4 00:30:10
5 00:30:10
6 00:10:01
7 00:10:01
8 00:26:15
9 00:26:15
10 00:53:51
11 00:53:51
Name: Running-Time, dtype: timedelta64[ns]

关于python - Pandas 将列转换为时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49206158/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com