Traitement de texte pandas à première vue

Appelez - moi frère. 2022-01-15 03:48:57 阅读数:210

traitement texte pandas premi vue

Bonjour tout le monde,C'est moi..

Nous sommes souvent exposés à des informations textuelles dans notre travail quotidien,L'information sur les données doit être analysée à partir du texte,Puis l'analyse des données.

Et l'analyse de l'information textuelle est un peu chauve,Quelle coïncidence!,PandasIl se trouve qu'il y a une meilleure façon de traiter ce type de données textuelles,Alors apprenons ensemble!

1. Type de données textuelles

InpandasIl y a deux façons de stocker des données textuelles:object Et string.Inpandas 1.0Avant la version,objectEst un type de texte unique,Si vous incluez des types mixtes tels que des valeurs numériques et du texte dans une colonne de données, la valeur par défaut est généralementobject.Inpandas 1.0 Après la version,AjoutéstringType de texte,Peut mieux supporter le traitement des chaînes.

1.1. Description du type

Par défaut,objectReste le type par défaut pour les données textuelles.

Si vous souhaitezstringType,On peut passer pardtypeEffectuer la désignation

InSeries Ou DataframeAprès la création,On peut encore passer parastype Effectuer une conversion de type

Bien sûr., On a un autre df.convert_dtypes() La méthode permet une sélection intelligente des types de données

1.2. Différences de type

stringEtobject Différences opérationnelles .

PourstingDis,RetourNombre La méthode d'accès à la chaîne de sortie renvoie toujours un type entier qui peut être nul ;PourobjectDis,- Oui. int Ou float,Selon NA L'existence de valeurs

PourstringPar type,RetourBoole La méthode de sortie renvoie un type de données booléennes qui peut être nul

2. Méthode de chaîne

Series Et Index Il y a des méthodes de traitement des chaînes , Facile à utiliser ,Et surtout, Ces méthodes éliminent automatiquement les lacunes /NA Valeur,On peut passer parstr Propriétés accédant à ces méthodes .

2.1. Format texte

Le formatage de texte est le formatage du texte de chaîne , Comme convertir des majuscules et des minuscules

>>> s = pd.Series(
... ["A", "B", "Aaba", "Baca", np.nan, "cat"],
... dtype="string"
... )
>>> s.str.lower() # En minuscules
0 a
1 b
2 aaba
3 baca
4 <NA>
5 cat
dtype: string
>>> s.str.upper() # En majuscules
0 A
1 B
2 AABA
3 BACA
4 <NA>
5 CAT
dtype: string
>>> s.str.title() # Chaque mot en majuscules 
0 A
1 B
2 Aaba
3 Baca
4 <NA>
5 Cat
dtype: string
>>> s.str.capitalize() # Majuscules initiales
0 A
1 B
2 Aaba
3 Baca
4 <NA>
5 Cat
dtype: string
>>> s.str.swapcase() # Case Interchange
0 a
1 b
2 aABA
3 bACA
4 <NA>
5 CAT
dtype: string
>>> s.str.casefold() # En minuscules, Prise en charge d'autres langues 
0 a
1 b
2 aaba
3 baca
4 <NA>
5 cat
dtype: string

2.2. Alignement du texte

L'alignement du texte fait référence à l'alignement selon certaines règles lors de l'affichage du texte. , Comme l'alignement à gauche 、Aligner à droite、 Centre, etc

>>> s.str.center(10,fillchar='-') # Centrage,Largeur10, Les caractères de remplissage sont '-'
0 ----A-----
1 ----B-----
2 ---Aaba---
3 ---Baca---
4 <NA>
5 ---cat----
dtype: string
>>> s.str.ljust(10,fillchar='-') # Aligner à gauche
0 A---------
1 B---------
2 Aaba------
3 Baca------
4 <NA>
5 cat-------
dtype: string
>>> s.str.rjust(10,fillchar='-') # Aligner à droite
0 ---------A
1 ---------B
2 ------Aaba
3 ------Baca
4 <NA>
5 -------cat
dtype: string
>>> s.str.pad(width=10, side='left', fillchar='-') # Spécifier la largeur, Les caractères de remplissage sont alignés comme suit: left, Les caractères de remplissage sont '-'
0 ---------A
1 ---------B
2 ------Aaba
3 ------Baca
4 <NA>
5 -------cat
dtype: string
>>> s.str.zfill(3) # Spécifier la largeur3, Ajouter avant insuffisant 0
0 00A
1 00B
2 Aaba
3 Baca
4 <NA>
5 cat
dtype: string

2.3. Comptage et codage

Nombre de textes et codage du contenu

>>> s.str.count("a") # Nombre de lettres spécifiées dans la chaîne 
0 0
1 0
2 2
3 2
4 <NA>
5 1
dtype: Int64
>>> s.str.len() # Longueur de la chaîne
0 1
1 1
2 4
3 4
4 <NA>
5 3
dtype: Int64
>>> s.str.encode('utf-8') # Codage
0 b'A'
1 b'B'
2 b'Aaba'
3 b'Baca'
4 <NA>
5 b'cat'
dtype: object
>>> s.str.encode('utf-8').str.decode('utf-8') # Décodage
0 A
1 B
2 Aaba
3 Baca
4 <NA>
5 cat
dtype: object

2.4. Jugement de format

Le jugement de format est le jugement de format de caractère sur la chaîne , Comme si c'était un nombre. , C'est une lettre , Est - ce une décimale?

>>> s = pd.Series(
... ["A", "B", "Aaba", 12, 5, np.nan, "cat"],
... dtype="string"
... )
>>> s.str.isalpha() # Est - ce une lettre
0 True
1 True
2 True
3 False
4 False
5 <NA>
6 True
dtype: boolean
>>> s.str.isnumeric() # Est - ce un nombre0-9
0 False
1 False
2 False
3 True
4 True
5 <NA>
6 False
dtype: boolean
>>> s.str.isalnum() # Se compose - t - il de chiffres ou de lettres? 
0 True
1 True
2 True
3 True
4 True
5 <NA>
6 True
dtype: boolean
>>> s.str.isdigit() # Est - ce un nombre
0 False
1 False
2 False
3 True
4 True
5 <NA>
6 False
dtype: boolean
>>> s.str.isdecimal() # Si c'est une décimale 
0 False
1 False
2 False
3 True
4 True
5 <NA>
6 False
dtype: boolean
>>> s.str.isspace() # Est un espace
0 False
1 False
2 False
3 False
4 False
5 <NA>
6 False
dtype: boolean
>>> s.str.islower() # En minuscules ou non 
0 False
1 False
2 False
3 False
4 False
5 <NA>
6 True
dtype: boolean
>>> s.str.isupper() # En majuscules ou non 
0 True
1 True
2 False
3 False
4 False
5 <NA>
6 False
dtype: boolean
>>> s.str.istitle() # Format du titre 
0 True
1 True
2 True
3 False
4 False
5 <NA>
6 False
dtype: boolean

Les méthodes de ces chaînes sont en fait python La méthode Native String est essentiellement la même .

3. Texte opérations avancées

L'opération text Advanced contient une Division de texte 、Remplacement du texte、Mosaïque de texte、 Correspondance de texte et extraction de texte, etc. , Apprenez ces techniques. , Nous pouvons essentiellement compléter le traitement et l'analyse de l'information textuelle complexe commune .

3.1. Texte divisé

Le fractionnement du texte est similaire excel Opérations de ventilation des données , Séparer le contenu du texte par les caractères spécifiés , Pour plus de détails, voir l'exemple suivant .

Méthodessplit()Renvoie une liste

On peut utiliserget Ou [] Accès symbolique aux éléments de la liste fractionnée

On peut encore Élargir la liste divisée ,Paramètre requisexpand

Encore une fois,On peut. Limiter le nombre de séparations , La valeur par défaut est de gauche (rsplitC'est de droite à gauche), Paramètres utilisés n

Pour des spécifications de séparation plus complexes ,Nous pouvons Expression régulière passée au délimiteur

Supplément:Commestr.slice() Méthodes de sélection des tranches et str.partition() Les méthodes de segmentation des textes ont des effets similaires , Vous pouvez consulter les documents officiels sur demande. .

3.2. Remplacement du texte

Nous utilisons souvent des fonctions de remplacement dans le traitement des données , Remplacer certaines des données spécifiées par ce que nous voulons remplacer .Encore une fois, Lors du traitement du remplacement des données textuelles ,str.repalce() Il est également très satisfaisant pour cette opération .

Dans les cas ci - dessus,Oui.regexParamètre défini àFalse Au lieu d'échapper à chaque caractère ;Au contraire,Pour s'échapper, Remplacement régulier .

En outre, Nous pouvons également remplacer l'expression régulière , Par exemple, dans l'exemple suivant, nous implémentons le remplacement inversé de la Partie anglaise et chinoise des données textuelles. :

Peut - être que certains étudiants ne peuvent pas comprendre intuitivement le cas régulier ci - dessus. , Voici une brève introduction au démontage :

Quelques introductions aux expressions régulières , Vous pouvez également vous référer aux tweets précédents 《》Pour en savoir plus.

En plus,On peut encore passer parstr.slice_replace()Réalisation méthodologique Conserver la sélection , Remplacer le reste Fonctionnement:

Supplément: On peut encore passer. str.repeat() Méthode répéter le texte original , Vous pouvez l'expérimenter vous - même.

3.3. Mosaïque de texte

L'épissage de texte consiste à relier plusieurs textes ensemble ,Basé surstr.cat()Méthodes

Par exemple,, Assembler le contenu d'une séquence , Les valeurs manquantes sont ignorées par défaut , Nous pouvons également spécifier les valeurs manquantes

Connectez une séquence à une autre liste de longueur égale , Par défaut, s'il manque une valeur , Il en résulte également des valeurs manquantes dans les résultats , Cependant, vous pouvez spécifier les valeurs manquantes na_repTraitement de la situation

Connectez une séquence à un autre tableau de longueur égale ( Index cohérent )

Alignement des index

Dans l'alignement de l'index , Nous pouvons également utiliser les paramètres joinAllez, viens. Spécifier l'alignement ,Par défaut à gaucheleft,Etouter, inner, right

3.4. Correspondance textuelle

Correspondance textuelle ici, nous présentons les requêtes et les jugements d'inclusion ,Utiliser séparémentstr.findall()str.find()Etstr.contains()Méthodes.

Recherche de texte,str.findall() Renvoie la valeur interrogée ,str.find() Renvoie l'emplacement du résultat correspondant (-1Indique qu'il n'existe pas)

Le texte contient ,En fait...str.contain() Fréquent dans le filtrage des données

En outre,Etstr.startwith()Etstr.endwith() Utilisé pour spécifier si un caractère est inclus au début ou à la fin ,Etstr.match() Peut être utilisé pour la correspondance d'expression régulière .

3.5. Extraction de texte

Nous rencontrons souvent la nécessité d'extraire des chaînes spécifiques dans une séquence de texte , C'est le moment d'adopter str.extract() La méthode fonctionne bien ,C'est... Extraire les données requises du texte en colonnes séparées par des expressions régulières .

Comme le cas suivant, Nous utilisons des expressions régulières pour diviser le texte en deux parties , La première partie est les lettres aEtb, Partie II nombre correspondant :

Dans les cas susmentionnés,expandLe paramètre estFasle Si le résultat retourné est une colonne Series,Sinon, oui.Dataframe.

Nous pouvons également commander les colonnes extraites ,Forme?P<Nom de la colonne>,Les détails sont les suivants:

Extraire toutes les correspondances , Correspond à tout ce qui est conforme aux règles dans un texte , Enfin, un index à plusieurs niveaux des données :

Nous pouvons également utiliser Extraire les variables virtuelles ,Par exemple,"|"Séparation(Première ligneabcSeulementa,La deuxième ligne estaEtb, Il n'y a pas de troisième ligne ,Quatrième ligneaEtc):

C'est tout ce qui précède, Je crois qu'après avoir maîtrisé le traitement de ces données textuelles, , Le traitement des données textuelles sera très pratique dans le travail quotidien .

Les étudiants intéressés peuvent se concentrer sur ,Retour en arrière - plan Données textuelles Obtenir le Code de présentation

版权声明:本文为[Appelez - moi frère.]所创,转载请带上原文链接,感谢。 https://pythonmana.com/2022/01/202201080611484949.html