2016-11-18 2 views
2

У меня есть ФР, который выглядит следующим образом:«подмножество» не работает для drop_duplicates панды dataframe

A    B C    D  NEW 
0 1  Adhoc_Task WID   WI_DTL  [] 
1 1 Arun_adhoc_load ATT   IXN_1 (IXN,) 
2 1 Arun_adhoc_load ATT   IXN_10 (IXN,) 
3 1 Arun_adhoc_load ATT   IXN_100 (IXN,) 
4 1 Arun_adhoc_load ATT   IXN_101 (IXN,) 
5 2 Batch_Support ATT  CDS_STATUS  [] 
6 2 Batch_Support ATT  CDS_CONTROL  [] 
7 2 Batch_Support ATT CDS_ORA_STATUS  [] 
8 2 Batch_Support ATT  REP_FILTER  [] 
9 1  online_load ATT   TAX_3 (TAX,) 
10 1  online_load ATT   TAX_4 (TAX,) 
11 1  online_load ATT   TAX_8 (TAX,) 
12 1  online_load ATT   TAX_11 (TAX,) 

Желаемая выход будет выглядеть следующим образом:

A    B C    D  NEW 
0 1  Adhoc_Task WID   WI_DTL  [] 
1 1 Arun_adhoc_load ATT   IXN_1 (IXN,) 
5 2 Batch_Support ATT  CDS_STATUS  [] 
9 1  online_load ATT   TAX_3 (TAX,) 

Я пытаюсь бросить повторяющиеся строки основаны от столбца B. Однако, когда я бегу

df.drop_duplicates(subset = ['B'], keep='first', inplace=True) 

Я получаю следующее сообщение об ошибке:

TypeError: drop_duplicates() got an unexpected keyword argument 'subset' 

Я бегу панд 0.19.1 из питона 3, так что я посмотрел на документацию здесь: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.drop_duplicates.html

Я не имею ни малейшего представления о том, что я делаю неправильно с subset. Как я могу удалить дубликаты из DataFrame на основе значений в одном столбце?

+1

Для меня это прекрасно работает. Но вы можете попробовать 'df.drop_duplicates (['B'], inplace = True)' или 'df.drop_duplicates ('B', inplace = True)' – jezrael

+0

Я пробовал это ... У меня получилась следующая ошибка: 'ValueError : keep должно быть либо «первым», «последним», либо «ложным» – unasalusvictis

+0

Я также пробовал это. Я получаю следующее: 'TypeError: drop_duplicates() получил несколько значений для аргумента 'keep'' – unasalusvictis

ответ

5

По какой-либо причине в вашем коде df стал объектом серии. Проверьте type(df) перед сбоем drop_duplicates звонок. Эта функция не имеет аргумента subset для серии.

+0

Супер, приятный ответ. +1 – jezrael