#python #pandas
#питон #панды
Вопрос:
У меня есть несколько большой массив (~3000 строк), где в первом столбце есть повторяющиеся строковые значения, которые имеют разные числа. Я хочу иметь возможность удалить эти дубликаты, не сдвигая ячейки в этом столбце.
Ввод
row/rack shelf tilt row1.rack1 B 5 row1.rack1 A nan row1.rack2 C nan row1.rack2 B nan row1.rack2 A 17
Желаемый Результат
row/rack shelf tilt row1.rack1 B 5 A nan row1.rack2 C nan B nan A 17
Есть ли хороший способ сделать это? Я искал через stackoverflow и другие сайты, но не смог найти что-то подобное
Ответ №1:
использование .duplicated
и .loc
df.loc[df['row/rack'].duplicated(keep='first'),'row/rack'] = '' print(df) row/rack shelf tilt 0 row1.rack1 B 5.0 1 A NaN 2 row1.rack2 C NaN 3 B NaN 4 A 17.0
Комментарии:
1. Спасибо! Это сработало идеально
Ответ №2:
mask
дубликаты с пустыми строками:
df["row/rack"] = df["row/rack"].mask(df["row/rack"].duplicated(), "") gt;gt;gt; df row/rack shelf tilt 0 row1.rack1 B 5.0 1 A NaN 2 row1.rack2 C NaN 3 B NaN 4 A 17.0