web-dev-qa-db-fra.com

python - TypeError: types non ordonnables: str ()> float ()

j'ai un fichier csv et a une colonne v3 mais cette colonne a quelques lignes "nan". Comment puis-je exclure les lignes.

 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: les colonnes V3 ont A, C, B, A, C, D , A, S, comme ça, et je veux le convertir en (1,2,3,1,2,4 , 1, 7)

12
Thoram Mastero

Masquez les valeurs nan en utilisant ~ isnull ():

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

Une autre façon est d'utiliser la fonction pandas.factorize, qui s'occupe automatiquement des nans (leur affecte -1):

dataset['v3'] = dataset['v3'].factorize()[0]
13
Rob