Comment supprimer les caractères de la colonne consiste en chiffres et caractères?
Ceci est le jeu de données: p> Ceci est la sortie attendue: p > ceci est la sortie réelle: p> J'ai essayé à l'aide de la commande p>
3 Réponses :
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('\
Essayez d'utiliser Ce lien explique le remplacement par des groupes de capture de la regex. Le \ d + code> correspond aux numéros et au \ w + code> correspond aux caractères du mot Unicode restant immédiatement après. P> p>
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' >>> code>
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
Bonne idée. Pour cette affaire, vous pouvez simplement faire [: - 1] code> 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 code> est un fichier de données Pandas, donc [: - 1] code> ne fonctionnerait pas.
Je ne connais vraiment pas avec les pandas, alors je ne saurais rien à ce sujet, mais merci de me faire savoir.
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