форматирование даты и времени в многоиндексном массиве python (как два разных datetime) - PullRequest
0 голосов
/ 18 октября 2018

У меня есть следующие данные:

     level_0   level_1   level_2
0    90936.0   91908.0  Profile1  
1    92551.0   93049.0      Run1
2    93459.0   94053.0  Profile2
3    94723.0   95333.0  Profile3
4    95444.0   95713.0      Run2
5   100221.0  100758.0      Run3
6   100937.0  101243.0      Run4

Я хотел бы отформатировать столбцы level_0 и level_1 как время, когда наблюдения были начаты (level_0) и завершены (level_1):

     level_0   level_1   level_2
0    9:09:36   9:19:08  Profile1  
1    9:25:51   9:30:49      Run1
2    9:34:59   9:40:53  Profile2
3    9:47:23   9:53:33  Profile3
4    9:54:44   9:57:13      Run2
5   10:02:21  10:07:58      Run3

Как я могу это сделать?Спасибо

1 Ответ

0 голосов
/ 18 октября 2018

Я предполагаю, что ваш фрейм данных находится в pandas.В этом случае одним из способов является использование apply для применения pd.to_datetime к обоим столбцам, а затем использование dt.time для доступа только к строке времени:

df[['level_0','level_1']] = df[['level_0','level_1']].apply(lambda x: pd.to_datetime(x, format='%H%M%S.0').dt.time)
>>> df
    level_0   level_1   level_2
0  09:09:36  09:19:08  Profile1
1  09:25:51  09:30:49      Run1
2  09:34:59  09:40:53  Profile2
3  09:47:23  09:53:33  Profile3
4  09:54:44  09:57:13      Run2
5  10:02:21  10:07:58      Run3
6  10:09:37  10:12:43      Run4
...