Python 3.x Pandas-将python中的hh:mm和hh:mm:ss转换为标准hh:mm:ss
我有一个“小时”列,它有小时时间,但有些列为(小时:分钟)Python 3.x Pandas-将python中的hh:mm和hh:mm:ss转换为标准hh:mm:ss,python-3.x,pandas,Python 3.x,Pandas,我有一个“小时”列,它有小时时间,但有些列为(小时:分钟)1:00有些列为24:00:00。我想将它们全部转换为as,1:00:00(即小时:分钟:秒)。我试着将转换为\u datetime,但没有成功。谢谢你的帮助 df['hour'] = pd.to_datetime(df['hour'], format='%H:%M%:%S', errors='ignore') 您可以使用numpy.where将尾随“:00”添加到没有尾随“:00”的字符串中,然后转换为datetime或timedel
1:00
有些列为24:00:00
。我想将它们全部转换为as,1:00:00
(即小时:分钟:秒)。我试着将转换为\u datetime
,但没有成功。谢谢你的帮助
df['hour'] = pd.to_datetime(df['hour'], format='%H:%M%:%S', errors='ignore')
您可以使用
numpy.where
将尾随“:00”添加到没有尾随“:00”的字符串中,然后转换为datetime
或timedelta
(以两者为准)
您可以使用
numpy.where
将尾随“:00”添加到没有尾随“:00”的字符串中,然后转换为datetime
或timedelta
(以两者为准)
如果要使用日期和时间,可以使用strftime()并强制转换为datetime:
df1 = pd.DataFrame({'hour': ['21:51','11:07:20', '08:33:16', '09:01']})
df1['Clean_hour'] = (df1.hour.apply(lambda x: pd.to_datetime(x).strftime('%H:%M:%S'))
.apply(lambda x: pd.to_datetime(x)))
print(df1,df1.dtypes)
hour Clean_hour
0 21:51 21:51:00
1 11:07:20 11:07:20
2 08:33:16 08:33:16
3 09:01 09:01:00
hour object
Clean_hour datetime64[ns]
如果要使用日期和时间,可以使用strftime()并强制转换为datetime:
df1 = pd.DataFrame({'hour': ['21:51','11:07:20', '08:33:16', '09:01']})
df1['Clean_hour'] = (df1.hour.apply(lambda x: pd.to_datetime(x).strftime('%H:%M:%S'))
.apply(lambda x: pd.to_datetime(x)))
print(df1,df1.dtypes)
hour Clean_hour
0 21:51 21:51:00
1 11:07:20 11:07:20
2 08:33:16 08:33:16
3 09:01 09:01:00
hour object
Clean_hour datetime64[ns]
你能用你的问题创建一个例子,比如你的数据框吗?你能用你的问题创建一个例子,比如你的数据框吗?为了与用户一起工作,列应该是
df.hour
。回答得好@coldspeed,谢谢!这很好用。我还有一个date
列,我使用了df['date']=pd.to_datetime(df['date'])
。与hour
和date
一起,我可以轻松地对我的数据进行排序。该列应为df.hour
,以便与用户一起工作没有问题。回答得好@coldspeed,谢谢!这很好用。我还有一个date
列,我使用了df['date']=pd.to_datetime(df['date'])
。连同hour
和date
,我可以轻松地对数据进行排序。谢谢!它工作得很好,但是当我添加值24:00:00
时,它会给我一个错误,ValueError:hour必须在0..23
中。您必须在datetime中保存我添加的修改,直到有相同的问题。您添加了另一个问题不知道您想对此日期执行什么操作。我建议你打开一个新问题,你可以解释你想用datetime做什么..datetime64是datetime的标准类型基本上,我有date
列和time
列。time
列的范围从1:00
到24:00:00
。我试图将这两列正确设置为to_datetime
,并按升序排序。但是,按照您建议的当前形式,使用24:00:00
会给我一个错误,因为ValueError:hour必须在0..23
中。谢谢,谢谢!它工作得很好,但是当我添加值24:00:00
时,它会给我一个错误,ValueError:hour必须在0..23
中。您必须在datetime中保存我添加的修改,直到有相同的问题。您添加了另一个问题不知道您想对此日期执行什么操作。我建议你打开一个新问题,你可以解释你想用datetime做什么..datetime64是datetime的标准类型基本上,我有date
列和time
列。time
列的范围从1:00
到24:00:00
。我试图将这两列正确设置为to_datetime
,并按升序排序。但是,按照您建议的当前形式,使用24:00:00
会给我一个错误,因为ValueError:hour必须在0..23
中。谢谢
df1 = pd.DataFrame({'hour': ['21:51','11:07:20', '08:33:16', '09:01']})
df1['Clean_hour'] = (df1.hour.apply(lambda x: pd.to_datetime(x).strftime('%H:%M:%S'))
.apply(lambda x: pd.to_datetime(x)))
print(df1,df1.dtypes)
hour Clean_hour
0 21:51 21:51:00
1 11:07:20 11:07:20
2 08:33:16 08:33:16
3 09:01 09:01:00
hour object
Clean_hour datetime64[ns]