Попробовав решение, предложенное Желязным на относительно большом DataFrame (~ 400 тыс. строк), я нашел его очень медленным. Вот альтернатива, которую я обнаружил, чтобы быстрее выполнять заказы на моем наборе данных.
df = pd.DataFrame({
'sp' : ['MM1', 'MM1', 'MM1', 'MM2', 'MM2', 'MM2', 'MM4', 'MM4', 'MM4'],
'mt' : ['S1', 'S1', 'S3', 'S3', 'S4', 'S4', 'S2', 'S2', 'S2'],
'val' : ['a', 'n', 'cb', 'mk', 'bg', 'dgb', 'rd', 'cb', 'uyi'],
'count' : [3,2,5,8,10,1,2,2,7]
})
df_grouped = df.groupby(['sp', 'mt']).agg({'count':'max'})
df_grouped = df_grouped.reset_index()
df_grouped = df_grouped.rename(columns={'count':'count_max'})
df = pd.merge(df, df_grouped, how='left', on=['sp', 'mt'])
df = df[df['count'] == df['count_max']]
, если ваш объект $this->db
ссылается на объект PDO, чтобы вы могли использовать этот
$ID=$this->db->lastInsertId();
для сохранения вашего идентификатора, лучше сохранить его в переменной
поэтому после каждой вставки вы можете сохранить ID этой вставленной строки
и помнить, что вы должны использовать ее точно после $sth->execute()
Каждый раз, когда вы вставляете запись в таблицу с первичным ключом в качестве автоматического приращения, «LAST_INSERT_ID ()» будет обновляться с самым последним значением. Он не будет постоянным, но да, если ваша таблица не имеет одного, он все равно должен удерживать последнее значение, используемое для таблицы с первичным ключом автоматического увеличения.