Maison >développement back-end >Tutoriel Python >Comment créer un DataFrame Pandas à partir d'un fichier texte avec des modèles spécifiques ?

Comment créer un DataFrame Pandas à partir d'un fichier texte avec des modèles spécifiques ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-02 13:14:02433parcourir

How to Create a Pandas DataFrame from a Text File with Specific Patterns?

Création d'un DataFrame Pandas à partir d'un fichier texte avec des modèles spécifiques

Vous devez construire un DataFrame Pandas à partir d'un fichier texte avec la structure suivante :

Alabama[edit]
Auburn (Auburn University)[1]
Florence (University of North Alabama)
Jacksonville (Jacksonville State University)[2]
Livingston (University of West Alabama)[2]
Montevallo (University of Montevallo)[2]
Troy (Troy University)[2]
Tuscaloosa (University of Alabama, Stillman College, Shelton State)[3][4]
Tuskegee (Tuskegee University)[5]

Les lignes avec "[edit]" indiquent les états, tandis que les lignes avec "[number]" indiquent les régions. La tâche consiste à diviser le fichier en fonction de ces modèles et à répéter le nom de l'état pour chaque nom de région.

Solution :

  1. Lire le fichier texte à l'aide de Pandas ' read_csv, spécifiant le nom de la colonne comme "Nom de la région" en raison de l'absence de séparateur.
  2. Créez une nouvelle colonne nommée "State" à l'aide de l'extraction de chaîne pour capturer les noms d'état des lignes avec "[edit]" et remplissez les valeurs vers l'avant.
  3. Remplacez tous les caractères de la parenthèse ouvrante "(" par la fin de la chaîne dans la colonne "Nom de la région".
  4. Filtrez les lignes contenant "[modifier] " en utilisant une indexation booléenne basée sur un masque créé à l'aide de String Contains.

Ce processus donnera le Pandas DataFrame souhaité avec les colonnes "State" et "Region Name".

Exemple :

<code class="python">import pandas as pd

df = pd.read_csv("filename.txt", sep=";", names=['Region Name'])
df.insert(0, 'State', df['Region Name'].str.extract('(.*)\[edit\]', expand=False).ffill())
df['Region Name'] = df['Region Name'].str.replace(r' \(.+$', '')
df = df[~df['Region Name'].str.contains('\[edit\]')].reset_index(drop=True)

print(df)</code>

Sortie :

      State   Region Name
0   Alabama        Auburn
1   Alabama      Florence
2   Alabama  Jacksonville
3   Alabama    Livingston
4   Alabama    Montevallo
5   Alabama          Troy
6   Alabama    Tuscaloosa
7   Alabama      Tuskegee
8    Alaska     Fairbanks
9   Arizona     Flagstaff
10  Arizona         Tempe
11  Arizona        Tucson

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!

Déclaration:
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