0
votes

Comment supprimer des caractères de la chaîne?

Comment supprimer les caractères de la colonne consiste en chiffres et caractères?

Ceci est le jeu de données: xxx

Ceci est la sortie attendue: xxx

ceci est la sortie réelle: xxx

J'ai essayé à l'aide de la commande xxx


2 commentaires

Pourquoi la deuxième ligne devient-elle 1.11 plutôt que 11.11?


Désolé pour l'erreur de faute de frappe. J'aurais dû écrire 11.11


3 Réponses :


0
votes

Je vois deux manières triviales de faire cela avec un deuxième passage. On est simplement de supprimer la période de fuite. L'autre consiste à remplacer les chaînes de lettres séparément: un point s'il est séparé par un espace; Retirez-le autrement.

df.Name = df.Name.str.replace('\D+ ','.')
df.Name = df.Name.str.replace('\


0 commentaires

0
votes

Essayez d'utiliser xxx

Ce lien explique le remplacement par des groupes de capture de la regex. Le \ d + correspond aux numéros et au \ w + correspond aux caractères du mot Unicode restant immédiatement après.


1 commentaires

Oui, j'ai fait un peu similaire: >>> re7 ('[az] {3} \ s', '.' '11 ans 11mon', 1) '11 .11. '[az] {3}' ',' '11 .11 .11mon ', 1) '11 .11' >>>



0
votes

Essayez enchaînant rstrip code> à la fin de ce que vous avez déjà essayé et qui devrait éliminer la période de fuite:

In [5] df.Name.str.replace('\D+', '.').str.rstrip('.')
Out[5]: 
0      0.0
1    11.11
2      2.2
3      3.5
Name: Name, dtype: object


3 commentaires

Bonne idée. Pour cette affaire, vous pouvez simplement faire [: - 1] pour couper le dernier caractère également.


@Stardustgogeta - Bien que cela ne soit pas explicitement mentionné dans la question, ma compréhension est que df est un fichier de données Pandas, donc [: - 1] ne fonctionnerait pas.


Je ne connais vraiment pas avec les pandas, alors je ne saurais rien à ce sujet, mais merci de me faire savoir.