我有一个熊猫列“小时”,它有每小时的时间,但是有些列为(hour:minute)1:00
,有些列为24:00:00
。我想将它们全部转换为1:00:00
(即小时:分钟:秒)。我尝试转换为to_datetime
,但是没有运气。感谢您的帮助。
df['hour'] = pd.to_datetime(df['hour'], format='%H:%M%:%S', errors='ignore')
答案 0 :(得分:1)
您可以使用numpy.where
将结尾的“:00”添加到不包含结尾的字符串中,然后转换为datetime
或timedelta
(以任意一个为准)。
df = pd.DataFrame({'hour': ['1:00', '23:15:00']})
df
hour
0 1:00
1 23:15:00
pd.to_timedelta(np.where(df.hour.str.count(':') == 1, df.hour + ':00', df.hour))
# TimedeltaIndex(['01:00:00', '23:15:00'], dtype='timedelta64[ns]', freq=None)
df['hour'] = pd.to_timedelta(
np.where(df['hour'].str.count(':') == 1, df['hour'] + ':00', df['hour']))
答案 1 :(得分:0)
如果要使用日期和时间,可以使用strftime()并将其强制转换为datetime:
public function registerPermissions()
{
return [
'cng.tennis.access_events' => ['tab' => 'Events', 'label' => 'Create events']
];
}