Используйте методы groupby
и idxmax
:
date
в datetime
: df['date']=pd.to_datetime(df['date'])
max
столбца date
, после groupyby ad_id
: idx=df.groupby(by='ad_id')['date'].idxmax()
df_max=df.loc[idx,]
Out [54]:
ad_id price date
7 22 2 2018-06-11
6 23 2 2018-06-22
2 24 2 2018-06-30
3 28 5 2018-06-22
Git основан на файлах, он не будет изменять содержимое отслеживаемых файлов для получения различий.
Не включайте таблицы / данные в дампы db, которые вам не нужны. Если это не создает различий, вам не нужно предпринимать дополнительные шаги, чтобы игнорировать / исправлять его.
Итак, если, например, проблема заключается в удалении статей, которые вы не хотите создавать, удалите их из процесса резервного копирования:
mysqldump -c -w "articles.deleted IS NULL" articles > backup.sql
После этого обработайте дамп базы данных, чтобы удалить те вещи, которые вам не нужны. В качестве примера, вот выдержка из вспомогательного скрипта db dump, который я использую:
#!/bin/bash
mysqldump -dRC --skip-dump-date --skip-add-drop-table --default-character-set=utf8 database $@ > schema.sql
sed -i 's/ AUTO_INCREMENT=[0-9]\+//' schema.sql
Этот пример (только для иллюстрации) удаляет значения автоинкремента из операторов create table, чтобы они не генерировали различия в (контролируемый версией) файл schema.sql.
Если git не может этого сделать, два решения, которые я вижу:
cat dump.sql | grep -v "_session" >> dump.sql
, но было бы идеально, если бы я мог добавить grep, подобный этому, где-нибудь.