在Pandas中将MM:SS列转换为HH:MM:SS列。我尝试了所有可能的方法,例如更改数据类型以及to_datetime和to_timedelta,但我无法涵盖该系列。请帮助某人。我收到如下错误:
(此处的芯片时间为MM:SS格式,我想更改为HH:MM:SS)
df2["ChipTime"]=pd.to_datetime(df2.ChipTime, unit="hour").dt.strftime('%H:%M:%S')
ValueError:无法投放小时数
df2["ChipTime"]=pd.to_timedelta(df2["ChipTime"])
ValueError:预期的hh:mm:ss格式
df2["ChipTime"]=df2["ChipTime"].astype(int)
ValueError:以10为底的int()无效文字:“ 16:48”
我尝试了更多的方法,以上是其中的一些方法,我是Pandas的初学者,因此,如果我有任何失误,请原谅。谢谢
答案 0 :(得分:0)
如果将值转换为日期时间,则在to_datetime
中添加带有参数格式的默认年,月,日,如果可能的话,请按Series.dt.time
将值转换为时间。
df2 = pd.DataFrame({'ChipTime':['16:48','10:48']})
df2["ChipTime1"]=pd.to_datetime(df2.ChipTime, format="%M:%S")
df2["ChipTime11"]=pd.to_datetime(df2.ChipTime, format="%M:%S").dt.time
或者对于时间增量,将to_timedelta
添加00:
作为默认小时:
df2["ChipTime2"]=pd.to_timedelta('00:' + df2["ChipTime"])
print (df2)
ChipTime ChipTime1 ChipTime11 ChipTime2
0 16:48 1900-01-01 00:16:48 00:16:48 00:16:48
1 10:48 1900-01-01 00:10:48 00:10:48 00:10:48