Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Pandas-将python中的hh:mm和hh:mm:ss转换为标准hh:mm:ss_Python 3.x_Pandas - Fatal编程技术网

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]