0
votes

Python - Obtenir une chaîne après un caractère spécifique à partir d'inverse

J'essaie de capturer les domaines de cette liste de messagerie. J'ai des sous-domaines dans l'email et j'essaie de le supprimer. J'ai juste besoin d'une corde avant et après '.' de l'arrière xxx pré>

essayé cela et combinaisons de -1, 2: etc p> xxx pré>

besoin de sortie comme celui-ci p >

ids emails
0   1   gmail.com
1   2   aol.com
2   3   
3   4   abc.edu
4   5   abc.edu
5   6   
6   7   abc.gov
7   8   test.net


2 commentaires

Pourquoi avez-vous passé 1 comme deuxième argument sur divisé ?


Donc ... si . est uniquement présent qu'une seule fois - gardez l'original - sinon - gardez tout après le premier . ?


3 Réponses :


2
votes

En passant 1 code> comme deuxième argument sur Split () code> Vous limitez la scission en une.

Utilisation à la place: P>

In []: df.emails.str.split(".").str[-2:].str.join(".")
Out[]: 
0    gmail.com
1      aol.com
2             
3      abc.edu
4      abc.edu
5             
6      abc.gov
7     test.net
Name: emails, dtype: object


3 commentaires

On dirait que l'OP s'attend à ce que er.abc.edu à partir de l'index 4 au lieu de abc.edu


On pourrait aussi être capable de s'en sortir avec quelque chose comme: df.emails.stract (r '(\ w + \ \ w + $)')


@Jonclements Je pense que vous avez confondu le code PENTUltimate Code dans l'OP pour le dernier.



1
votes

Essayez ceci xxx


0 commentaires

1
votes

Vous pouvez pré-traiter la liste des e-mails xxx

espère que cela aide.


0 commentaires