2017-10-21 91 views
-1

J'ai récemment commencé à expérimenter avec des pandas pour Python. J'ai chargé un dataframe de Excell qui se traduit par les éléments suivants:Remplacement de Pandas s'avère être NaN

Datum Fotonummer Werkput Vlak Spoornummer Oriëntatie Onderwerp Fotograaf        
2011-05-16 1   1 1.0  1   N  Vlakfoto Spoor 1 DIM 
2011-05-16 2   1 1.0  1   N  Vlakfoto Spoor 1 DIM 
2011-05-16 3   1 1.0  1   N  Vlakfoto Spoor 1 DIM 

À certains endroits, la colonne « Spoornummer » contient plusieurs valeurs séparées par un « - ».

2011-05-16 24   1 1.0 12 - 13 - 14 - 15 - 16 N Vlakfoto Spoor 12 - 13 - 14 - 15 - 16 DIM 
2011-05-16 25   1 1.0 17 - 18     N Vlakfoto Spoor 17 - 18     DIM 
2011-05-16 26   1 1.0 17 - 18     N Vlakfoto Spoor 17 - 18     DIM 

Je voulais remplacer le '-' par un '|' pour une utilisation facile dans un db Neo4j, et a essayé de le faire en utilisant:

df['Spoornummer'] = df['Spoornummer'].str.replace('-', '|') 

et d'autres variations, mais en vain. Lors de l'exécution de la commande, toute la colonne 'Spoornummer' reçoit une valeur NaN.

Thx à l'avance.

+3

Impossible de reproduire - cela fonctionne pour moi. –

+2

Ce code devrait fonctionner correctement. Avez-vous eu l'occasion d'effacer votre colonne dans vos autres tentatives afin que vous exécutiez ce code sur une colonne déjà vide? –

+0

Fonctionne bien pour moi aussi. –

Répondre

-1

Vous pouvez utiliser sub() de re et l'appliquer à chaque ligne de Colum Spoornummer:

import re 
df['Spoornummer'] = df['Spoornummer'].apply(lambda x: re.sub("-", "|", x))