2015-12-24 16 views
5

Ho una pandi DF che ha molti elementi di stringa che contiene parole in questo modo:spellatura tutti gli spazi vuoti finali in una colonna di un dataframe panda

'Frost        ' 

che ha molte importanti spazi bianchi di fronte di esso. Se confronto questa stringa a:

'Frost' 

ho capito che il confronto è stato False causa degli spazi iniziali.

Anche se posso risolvere questo iterando su ogni elemento del DF panda, il processo è lento a causa del gran numero di record che ho.

Questo altro approccio dovrebbe funzionare, ma non funziona:

rawlossDF['damage_description'] = rawlossDF['damage_description'].map(lambda x: x.strip('')) 

Così, quando ho ispezionare un elemento:

rawlossDF.iloc[0]['damage_description'] 

Restituisce:

'Frost        ' 

Che cosa sta succedendo Qui?

risposta

13

Sostituire la funzione con questo:

rawlossDF['damage_description'] = rawlossDF['damage_description'].map(lambda x: x.strip()) 

È quasi aveva ragione, è necessario per sbarazzarsi fuori il '' all'interno strip()

12

In alternativa è possibile utilizzare str.strip metodo:

rawlossDF['damage_description'] = rawlossDF['damage_description'].str.strip() 
+1

Ho provato questo su un set di dati 5M righe e ci vuole il doppio del tempo rispetto alla mappa + lambda – manuvendev

Problemi correlati