Используйте duplicated
с заменой значений для пустой строки - но получите смешанные значения - числовые со строками, поэтому некоторые функции должны завершиться сбоем. Лучше заменить на NaN
с, хотя integer
с конвертируется в float
с.
df.loc[df['Col2'].duplicated(), 'Col2'] = ''
#if want numeric column
#df.loc[df['Col2'].duplicated(), 'Col2'] = np.nan
Более быстрая альтернатива:
df['Col2'] = np.where(df['Col2'].duplicated(), '', df['Col2'])
print (df)
Col1 Col2
0 a 1
1 b
2 c
3 d 2