Вы можете сначала получить индексы дубликатов, затем заменить соответствующие значения time
на unknown
и, наконец, отбросить дубликаты:
import pandas as pd
df = pd.DataFrame({'id': ["Uk6", "36h", "Uk6", "rf5", "gg7", "rf5"],
'time': ["year", "year", "two-year", "month", "year", "half-year"]})
mask = df.duplicated(subset= 'id', keep=False)
df['time'][mask] = "unknown"
df = df.drop_duplicates('id')