Я считаю, что вам нужно отсортировать по нескольким столбцам вместе, но сначала преобразуйте столбец time
в datetime:
data1['time'] = pd.to_datetime(data1['time'])
#if need to compare integers
data1['number_from'] = data1['number_from'].astype(int)
data1.sort_values(['number_from','time'])
EDIT:
Проверено оба решения, работающие одинаково:
data1['time'] = pd.to_datetime(data1['time'])
df1 = data1.sort_values(['number_from','time'])
print (df1)
id number_from number_to time
Unnamed
17723 d210c4 396 48 2017-07-03 06:37:19
17703 d20c17 612 235 2017-07-03 06:36:28
17699 d20b3e 934 674 2017-07-03 06:36:20
17700 d20b81 934 674 2017-07-03 06:36:22
17701 d20b96 934 674 2017-07-03 06:36:23
17707 d20db5 934 658 2017-07-03 06:36:45
17708 d20de9 934 658 2017-07-03 06:36:47
17710 d20e05 934 658 2017-07-03 06:36:49
17711 d20e41 934 658 2017-07-03 06:36:51
17712 d20e73 934 658 2017-07-03 06:36:53
17713 d20ecc 934 702 2017-07-03 06:36:57
17714 d20ef1 934 702 2017-07-03 06:36:59
17715 d20f32 934 702 2017-07-03 06:37:01
17716 d20f77 934 702 2017-07-03 06:37:03
17717 d20f8d 934 702 2017-07-03 06:37:05
17718 d20fd8 934 262 2017-07-03 06:37:08
17719 d21017 934 262 2017-07-03 06:37:11
17720 d21032 934 262 2017-07-03 06:37:12
17721 d2103e 934 262 2017-07-03 06:37:13
17722 d2106d 934 262 2017-07-03 06:37:15
17725 d21147 934 691 2017-07-03 06:37:24
17726 d21167 934 691 2017-07-03 06:37:26
Добавлен параметр group_keys=False)
, чтобы избежать создания уровня из столбца number_from
:
df2 = data1.groupby('number_from', group_keys=False).apply(lambda x: x.sort_values('time'))
print (df2)
id number_from number_to time
Unnamed
17723 d210c4 396 48 2017-07-03 06:37:19
17703 d20c17 612 235 2017-07-03 06:36:28
17699 d20b3e 934 674 2017-07-03 06:36:20
17700 d20b81 934 674 2017-07-03 06:36:22
17701 d20b96 934 674 2017-07-03 06:36:23
17707 d20db5 934 658 2017-07-03 06:36:45
17708 d20de9 934 658 2017-07-03 06:36:47
17710 d20e05 934 658 2017-07-03 06:36:49
17711 d20e41 934 658 2017-07-03 06:36:51
17712 d20e73 934 658 2017-07-03 06:36:53
17713 d20ecc 934 702 2017-07-03 06:36:57
17714 d20ef1 934 702 2017-07-03 06:36:59
17715 d20f32 934 702 2017-07-03 06:37:01
17716 d20f77 934 702 2017-07-03 06:37:03
17717 d20f8d 934 702 2017-07-03 06:37:05
17718 d20fd8 934 262 2017-07-03 06:37:08
17719 d21017 934 262 2017-07-03 06:37:11
17720 d21032 934 262 2017-07-03 06:37:12
17721 d2103e 934 262 2017-07-03 06:37:13
17722 d2106d 934 262 2017-07-03 06:37:15
17725 d21147 934 691 2017-07-03 06:37:24
17726 d21167 934 691 2017-07-03 06:37:26
print (df1.equals(df2))
True