熊猫-在Python中将hh:mm和hh:mm:ss转换为标准hh:mm:ss

时间:2019-02-26 02:13:37

标签: python-3.x pandas

我有一个熊猫列“小时”,它有每小时的时间,但是有些列为(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')

2 个答案:

答案 0 :(得分:1)

您可以使用numpy.where将结尾的“:00”添加到不包含结尾的字符串中,然后转换为datetimetimedelta(以任意一个为准)。

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']
    ];
}