Comment faire pour supprimer un retour chariot dans un dataframe
Je vais avoir un dataframe qui contient des colonnes nommées id, country_name, l'emplacement et la total_deaths. Tout en faisant processus de nettoyage des données, je suis tombé sur une valeur dans une ligne qui a '\r'
ci-joint. Une fois que j'ai nettoyage complet, j'stocker le dataframe dans la destination.fichier csv. Depuis la ligne particulière a \r
attaché, il crée toujours une nouvelle ligne.
id 29
location Uttar Pradesh\r
country_name India
total_deaths 20
Je veux supprimer \r
. J'ai essayé df.replace({'\r': ''}, regex=True)
. Il ne fonctionne pas pour moi.
Est-il une autre solution. Quelqu'un peut-il aider?
Edit:
Dans le processus ci-dessus, je suis une itération sur df pour voir si \r
est présent. Si présent, le besoin de remplacer. Ici row.replace()
ou row.str.strip()
ne semble pas être un travail ou je pourrais le faire dans un mauvais sens.
Je ne veux pas spécifier le nom de la colonne ou de numéro de ligne tout en utilisant replace()
. Parce que je ne peux pas être certain que seule la "localisation" de la colonne sera d'avoir \r
. Vous trouverez le code ci-dessous.
count = 0
for row_index, row in df.iterrows():
if re.search(r"\\r", str(row)):
print type(row) #Return type is pandas.Series
row.replace({r'\\r': ''} , regex=True)
print row
count += 1
df.replace({r'\\r': ''}, regex=True)
ne fonctionne pas trop? Pourquoi utiliser iterrows()
? Je pense qu'il n'est pas nécessaire, parce que l'itération est très lent.Je n'ai pas d'autre moyen pour effectuer une itération sur df.
df.replace({r'\\r': ''}, regex=True)
ne fonctionne pasOriginalL'auteur Saranya Krishnamurthy | 2016-05-11
Vous devez vous connecter pour publier un commentaire.
Une autre solution est d'utiliser
str.bande
:Si vous souhaitez utiliser
remplacer
, ajouterr
et un\
:Dans
replace
vous pouvez définir la colonne pour le remplacer comme:ÉDITION par commentaire:
Si besoin de remplacer uniquement dans la colonne
location
:\r
est présent. S'il est présent, puis-je exécuter la remplacer. J'ai édité ma question encore une fois.Merci. J'ai ajouter un commentaire en question.
Ok, si l'utilisation de ce
DataFrame
-df = pd.DataFrame({'id': {0: 'location', 1: 'country_name', 2: 'total_deaths'}, '29': {0: 'Uttar Pradesh\\r', 1: 'India', 2: '20'}})
, ça marche? Et ce retourprint df['29'].tolist()
?Le ci-dessus
DataFrame
me renvoie le résultat suivant:['Uttar Pradesh\\r', 'India', '20']
. J'ai ajouté mon fichier de test et de source de données pour [le lien] (github.com/itsmesaranya/data-cleaning) . Pouvez-vous s'il vous plaît avoir un coup d'oeil?Veuillez vérifier ma solution.
OriginalL'auteur jezrael
utilisation
str.remplacez
, vous avez besoin pour échapper à la séquence de sorte qu'il traite comme un retour chariot plutôt que le littéral\r
:OriginalL'auteur EdChum