Explication détaillée d'exemples de chaînes de nettoyage en Python

Y2J
Libérer: 2017-05-10 12:00:30
original
2297 Les gens l'ont consulté

Cet article présente principalement les informations pertinentes sur le traitement des chaînes du nettoyage des données Python. Les amis qui en ont besoin peuvent s'y référer

Avant-propos

Le nettoyage des données est un complexe. et fastidieux (kubi), c'est aussi le maillon le plus important de tout le processus d'analyse des données. Certaines personnes disent que 80 % du temps consacré à un projet d’analyse est consacré au nettoyage des données. Cela semble étrange, mais c’est vrai dans le travail réel. Le nettoyage des données a deux objectifs. Le premier est de rendre les données disponibles via le nettoyage. La seconde consiste à rendre les données plus adaptées à une analyse ultérieure. En d’autres termes, il y a des données « sales » qui doivent être nettoyées, et des données propres qui doivent également être nettoyées.

Dans l'analyse de données, en particulier l'analyse de texte, le traitement des caractères nécessite beaucoup d'énergie, donc comprendre le traitement des caractères est également une capacité très importante pour l'analyse des données.

Méthodes de traitement des chaînes

Tout d'abord, comprenons quelles sont les méthodes de base.

Tout d'abord tout, comprenons La méthode de fractionnement de chaîne suivante

str='i like apple,i like bananer'
print(str.split(','))
Copier après la connexion

entraîne la division de la chaîne de caractères avec des virgules :

['j'aime la pomme', 'j'aime bananer']

print(str.split(' '))
Copier après la connexion

Le résultat du fractionnement basé sur les espaces :

['i', 'like', 'apple,i', 'like', 'bananer']

print(str.index(','))
print(str.find(','))
Copier après la connexion

Les deux résultats de recherche sont :

12

S'il n'est pas trouvé, index renvoie une erreur et find renvoie -1

print(str.count('i'))
Copier après la connexion

Le résultat est :

4

connt est utilisé pour compter la fréquence de la chaîne cible

print(str.replace(',', ' ').split(' '))
Copier après la connexion

Le résultat est :

['i', 'like', 'apple', 'i', 'like', 'bananer']

Ici, remplacer les virgules par des espaces, en utilisant des espaces pour diviser la chaîne, juste assez pour supprimer chaque mot.

En plus des méthodes conventionnelles, l'outil de traitement de caractères le plus puissant Expression régulière n'est autre que.

Expressions régulières

Avant d'utiliser des expressions régulières, nous devons comprendre les nombreuses méthodes des expressions régulières.

Permettez-moi d'examiner l'utilisation de la méthode suivante. Tout d'abord, comprenez la différence entre les méthodes de correspondance et de recherche

str = "Cats are smarter than dogs"
pattern=re.compile(r'(.*) are (.*?) .*')
result=re.match(pattern,str)

for i in range(len(result.groups())+1):
 print(result.group(i))
Copier après la connexion

Le résultat est :

Les chats sont plus intelligents que les chiens
Les chats
plus intelligents

Sous cette forme de règle de correspondance de pettern, les résultats de retour des méthodes de correspondance et de recherche sont les pareil

À ce moment, si vous modifiez le modèle en

pattern=re.compile(r'are (.*?) .*')
Copier après la connexion

match ne renverra aucun et le résultat de la recherche sera :

sont plus intelligents que les chiens
plus intelligents

Apprenons ensuite l'utilisation d'autres méthodes

str = "138-9592-5592 # number"
pattern=re.compile(r'#.*$')
number=re.sub(pattern,'',str)
print(number)
Copier après la connexion

Le résultat est :

138- 9592-5592

Ce qui précède consiste à extraire le numéro en remplaçant le contenu après le signe # par rien.

On peut encore remplacer la barre transversale du numéro

print(re.sub(r'-*','',number))
Copier après la connexion

Le résultat est :

13895925592

Nous pouvons également utiliser la méthode find pour imprimer la chaîne trouvée

str = "138-9592-5592 # number"
pattern=re.compile(r'5')
print(pattern.findall(str))
Copier après la connexion

Le résultat est :

['5', '5', '5']

Le contenu global des expressions régulières est relativement volumineux et nous devons avoir une compréhension suffisante des règles de correspondance des chaînes. Voici les règles de correspondance spécifiques.

Chaîne vectoriséeFonction

Lors du nettoyage des données dispersées à analyser, il faut souvent effectuer un travail de normalisation de chaîne.

data = pd.Series({'li': '120@qq.com','wang':'5632@qq.com',
 'chen': '8622@xinlang.com','zhao':np.nan,'sun':'5243@gmail.com'})
print(data)
Copier après la connexion

Le résultat est :

Vous pouvez porter des jugements préliminaires sur les données grâce à certaines méthodes d'intégration, telles que l'utilisation de contain pour déterminer si chaque data contain Contenant les mots-clés

print(data.str.contains('@'))
Copier après la connexion

le résultat est :

Vous pouvez également diviser la chaîne et extraire la chaîne requise

data = pd.Series({'li': '120@qq.com','wang':'5632@qq.com',
     'chen': '8622@xinlang.com','zhao':np.nan,'sun':'5243@gmail.com'})
pattern=re.compile(r'(\d*)@([a-z]+)\.([a-z]{2,4})')
result=data.str.match(pattern) #这里用fillall的方法也可以result=data.str.findall(pattern)
print(result)
Copier après la connexion

Le résultat est :

chen [(8622, xinlang, com)]
li [(120, qq, com)]
soleil [(5243, gmail, com) )]
wang [(5632, qq, com)]
zhao NaN
dtype : object

Pour rejoindre à ce moment-là, nous devons extraire au recto de l'adresse email Le nom

print(result.str.get(0))
Copier après la connexion

donne :

ou le nom de domaine auquel appartient l'adresse email

print(result.str.get(1))
Copier après la connexion

donne :

Bien sûr, elles peuvent également être extraites par découpage, mais la précision des données extraites n'est pas élevée

data = pd.Series({'li': '120@qq.com','wang':'5632@qq.com',
    'chen': '8622@xinlang.com','zhao':np.nan,'sun':'5243@gmail.com'})
print(data.str[:6])
Copier après la connexion

Le résultat est :

Enfin, nous apprenons la méthode des chaînes vectorisées

Résumé

[Connexe recommandations]

1. Tutoriel vidéo gratuit Python

2 Tutoriel vidéo orienté objet Python

3. >Tutoriel d'introduction de base à Python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!