@DannYLook
Программист

Почему данные не сортируются по дате?

Почему данные не сортируются по дате? Как работает код: api дает дату в формате строки после чего я перевожу в дату и хочу отсортировать ее. Далее я обратно возвращаю строку, чтобы записать в таблицу. Но данные почему-то не сортируются по дате. В таком виде записывается дата в csv:
17.08.2024

df = pd.concat(reports)
  df['День'] = pd.to_datetime(df['День'], format='%d.%m.%Y') # Преобразуем столбец 'День' в формат datetime
  df.sort_values(by=['День'], inplace=True) # Сортируем по датам
  df['День'] = df['День'].dt.strftime('%d.%m.%Y') # Возвращаем формат строки дате
  df.to_csv('final_report.csv', index=None) # Делаем единый csv файл
  data_for_google_sheets = df.fillna('').values.tolist()
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
1. Не помешало бы, пример несколько строк из фрейма которые не сортируются.
2. Обратно возвращать в строку не обязательно.
3. Методы чтения имеют параметр parse_dates для того что бы строковое представление даты перводить в тип данных datetime64
вот небольшой примерчик
(
    pd.DataFrame({
        'string_dates':['17.08.2024','15.08.2024','20.09.2024'],
        'values':[10,100,1000]
    })
    .assign(
        dates=lambda x: pd.to_datetime(x['string_dates'],format='%d.%m.%Y')
    )
    .sort_values(by='dates')
)
как видишь все сортируется, обрати внимания на типы данных. Колонку которая используется для сортировки можно дропнуть, ну или создать ее что называется "на лету".
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы