Я пытаюсь отсортировать многомерный массив на основе массива в массиве, который является датой-временем.
Я пытался
sorted_array = sorted(array, lambda r: r[0])
Однако я не могу сравнить ошибки.
TypeError: can't compare datetime.datetime to NoneType
Подмассивы должны быть отсортированы в том же порядке, что и массив datetime.
Вот пример вывода, на который я бы надеялся.
ar = [[datetime.datetime(2018, 4, 11, 4, 0, 30,tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=0, name=None)), datetime.datetime(2018, 4, 11, 4, 0, 29, zinfo=psycopg2.tz.FixedOffsetTimezone(offset=0, name=None)), datetime.datetime(2018, 4, 11, 4, 0, 28, zinfo=psycopg2.tz.FixedOffsetTimezone(offset=0, name=None))]],[None,2,1],[None,2,1],[None,2,1]]
будет заказан как
ar = [[datetime.datetime(2018, 4, 11, 4, 0, 28,tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=0, name=None)), datetime.datetime(2018, 4, 11, 4, 0, 29, zinfo=psycopg2.tz.FixedOffsetTimezone(offset=0, name=None)), datetime.datetime(2018, 4, 11, 4, 0, 30, zinfo=psycopg2.tz.FixedOffsetTimezone(offset=0, name=None))]],[1,2,None],[1,2,None],[1,2,None]]
EDIT:
Мне удалось найти решение, преобразовав массив в Pandas DataFrame
dataframe = df(ar)
sorted_data = dataframe.sort_values([0],axis=1).values
Однако я не уверен, действительно ли это лучший подход. Кроме того, по какой-либо причине 1 из моих datetime, похоже, преобразуется в метку времени, когда превращается в фрейм данных. Не уверен почему. Хотя сортировка дает мне именно то, что я хочу.