2016-05-30 4 views
1

У меня есть ряд с дубликатами, которые я пытаюсь избавиться отПанды серия удаление дубликатов вопрос

0  RWAY001 
1  RWAY001 
2  RWAY002 
3  RWAY002 
... 
112 RWAY057 
113 RWAY057 
114 RWAY058 
115 RWAY058 
Length: 116 

Drop.duplicates(), кажется, сократить длину до 58, но индекс до сих пор, кажется, идет от 0 до 116, но просто пропуская дубликаты:

0  RWAY001 
2  RWAY002 
... 
112 RWAY057 
114 RWAY058 
Length: 58 

Таким образом, строки между ними все еще существуют с величиной NaN. Я попробовал dropna(), но это не влияет на данные.

Это код, у меня есть:

df = pd.read_csv(path + flnm) 
    fields = df.file 
    fields = fields.drop_duplicates() 
    print fields 

бы признателен за любую помощь. Благодарю.

ответ

1

Я думаю, что вам нужно reset_index с параметром drop=True:

fields.reset_index(inplace=True, drop=True) 

Или:

fields = fields.reset_index(drop=True) 

Пример:

import pandas as pd 

df = pd.DataFrame({'file': {0: 'RWAY001', 1: 'RWAY001', 2: 'RWAY002', 3: 'RWAY002', 115: 'RWAY058', 113: 'RWAY057', 112: 'RWAY057', 114: 'RWAY058'}}) 
print (df) 
     file 
0 RWAY001 
1 RWAY001 
2 RWAY002 
3 RWAY002 
112 RWAY057 
113 RWAY057 
114 RWAY058 
115 RWAY058 

print (df.file.drop_duplicates()) 
0  RWAY001 
2  RWAY002 
112 RWAY057 
114 RWAY058 
Name: file, dtype: object 

print (df.file.drop_duplicates().reset_index(drop=True)) 
0 RWAY001 
1 RWAY002 
2 RWAY057 
3 RWAY058 
Name: file, dtype: object 
+0

Это сделал трюк. Спасибо! – Evgeni