Я хочу отсортировать данные в каждой ячейке в столбце с именем SESSIONS на основе даты (YYYY_MM_DD), и эта дата находится внутри элементов (строк), формирующих список. Столбец SESSIONS может иметь различное количество сеансов, а также может быть пустым. В одной ячейке столбца SESSIONS находится список сеансов (как в «li», который я привел в качестве примера для тестирования). Ниже показано, как это работало нормально при выполнении вне df (2019_04_20 отображается как последний):
li = ['WE233JP_2015_03_03__13_31_21','WE238JP_2019_04_20__16_40_59','WE932LT_2017_10_12__08_35_49']
li.sort(key = lambda x: datetime.strptime(re.sub(r'^([^_]+)_(.+)__(.+)', r'\2', x), '%Y_%m_%d'))
print(li)
Когда я пытаюсь применить его к df с кодами ниже (2 попытки):
df['sessions'] = df.sessions.fillna('NULL').sort_values().apply(lambda x: sorted(datetime.strptime(re.sub(r'^([^_]+)_(.+)__(.+)', r'\2', x), '%Y_%m_%d')))
df['sessions'] = df.sessions.fillna('NULL').sort_values().apply(lambda x: sorted(re.sub(r'^([^_]+)_(.+)__(.+)', r'\2', x)))
В обоих случаях я получил erorr: TypeError: ожидаемая строка или байтовоподобный объект
Простая сортировка без даты, как показано ниже, работает ОК:
df['sessions'] = df.sessions.fillna('NULL').sort_values().apply(lambda x: sorted(x))
Любые предложения, как отсортировать df по извлеченной части строки в формате даты?