drop_duplicates() перестал работать в пандах Python

Этот код ранее работал в Python 3 для удаления повторяющихся значений, но сохранял первое вхождение во всем фрейме данных. После возвращения к моему сценарию это больше не удаляет дубликаты в фрейме данных pandas.

df = df.apply(lambda x: x.drop_duplicates(), axis=1)

так что если у меня есть

a   b  c
0   1  2
3   4  0
0   8  9
10  0  11

Я хочу получить в качестве вывода

a  b  c
0  1  2
3  4  
   8  9
10   11

Я не против, если бланки возвращаются как "ня"

Я также попробовал следующее

df.drop_duplicates(subset = None, keep='first')

а также

df.drop_duplicates(subset = None, keep='first', inplace =True)

Любые советы / альтернативы будут приветствоваться!

3 ответа

Решение

После того, как вы приложили данные, я думаю, что вы можете использовать duplicated

newdf=df[~df.stack().duplicated().unstack()]
newdf
Out[131]: 
      a    b     c
0   0.0  1.0   2.0
1   3.0  4.0   NaN
2   NaN  8.0   9.0
3  10.0  NaN  11.0

Если вы хотите сбросить повторяющиеся значения вдоль строк, вы хотите использовать axis = 0 вместо

df = pd.DataFrame({'a':[3,3,4,4], 'b':[2,2,4,5]})

print(df)
   a  b
0  3  2
1  3  2
2  4  4
3  4  5

df.apply(lambda x: x.drop_duplicates(), axis=0)

     a  b
0  3.0  2
2  4.0  4
3  NaN  5

Тебе нужно inplace быть правдой:

df.drop_duplicates(subset=None, keep='first', inplace=True)
Другие вопросы по тегам