Вот пример набора данных
id firstname lastname email update date
A1 wendy smith ws@mail.com 2018-01-02
A1 wendy smith smith@mail.com 2019-02-03
A2 harry lynn lynn@mail.com 2016-04-03
A2 harry harylynn@mail.com 2019-03-12
A3 tinna dickey tinna@mail.com 2016-04-03
A3 tinna dickey tinna@mail.com 2013-06-12
A4 Tom Lee Tom@mail.com 2012-06-12
A5 Ella Ella@mail.com 2019-07-12
A6 Ben Lang Ben@mail.com 2019-03-12
Я отсортировал набор данных по id
и update date
, я хочу объединить строки с одинаковыми id
, если одна строка с пустымзначение, заполните другой с тем же id
, если это не соответствует, используйте последний. Для строк без дубликатов id
оставьте пустую ячейку такой, какая она есть.
выходные данные должны быть:
id firstname lastname email update date
A1 wendy smith smith@mail.com 2019-02-03
A2 harry lynn harylynn@mail.com 2019-03-12
A3 tinna dickey tinna@mail.com 2019-03-12
A4 Tom Lee Tom@mail.com 2012-06-12
A5 Ella Ella@mail.com 2019-07-12
A6 Ben Lang Ben@mail.com 2019-03-12
моя попытка была использовать ffill()
для объединения строк с пустыми и сохранения последнего дубликата, но результат, похоже, влияет на другие ячейки, которые должны иметь пустые значения(как фамилия в A5 должна быть пустой).
df=df.ffill().drop_duplicates('id',keep='last')