2016-02-10 7 views
6

Mam plik csv i kolumnę v3, ale ta kolumna ma kilka wierszy "nan". Jak mogę oprócz wierszy.python - TypeError: nieobsługiwane typy: str()> float()

dataset = pd.read_csv('mypath') 

    enc = LabelEncoder() 
    enc.fit(dataset['v3']) 
    print('fitting') 
    dataset['v3'] = enc.transform(dataset['v3']) 
    print('transforming') 
    print(dataset['v3']) 
    print('end') 

Edit: Kolumny V3 ma A, C, B, A, C, D ,,, A, S, tak, i chcę, aby przekształcić go (1,2,3,1,2 4 ,,, 1,7)

+0

Może yo pokazujesz zawartość pliku csv? –

+0

Co chcesz zrobić z tymi wierszami? Rzuć je? ('dropna') Wypełnij wartości NaN? ('fillna') – joris

+0

Nie, chcę, aby ten wiersz kategoryzował do liczb. Ten wiersz zawiera znaki. –

Odpowiedz

8

Mask wartości NAN za pomocą ~ ISNULL():

mask = ~dataset['v3'].isnull() 
dataset['v3'][mask] = enc.fit_transform(dataset['v3'][mask]) 

Innym sposobem jest użycie funkcji pandas.factorize, które automatycznie dba o Nans (przypisuje je -1):

dataset['v3'] = dataset['v3'].factorize()[0] 
+0

bardzo dziękuję :) dataset ['v3'] = dataset ['v3']. Factorize() [0] rozwiązany mój problem –

Powiązane problemy