Drop duplicates while preserving NaNs in pandas December 15, 2023 by Tarik Try df[(~df.duplicated()) | (df['col'].isnull())] The result is : col 0 one 1 two 2 NaN 3 NaN 4 NaN