Comment créer un Pandas DataFrame à partir d'un fichier texte avec des modèles spécifiques, où les états sont indiqués par \'[edit]\' et les régions par \'[number]\' ?

Susan Sarandon
Libérer: 2024-11-02 07:03:29
original
156 Les gens l'ont consulté

How do you create a Pandas DataFrame from a text file with specific patterns, where states are indicated by

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

Énoncé du problème :

L'objectif est de créer un Pandas DataFrame à partir d'un fichier texte qui a 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]
Alaska[edit]
Fairbanks (University of Alaska Fairbanks)[2]
Arizona[edit]
Flagstaff (Northern Arizona University)[6]
Tempe (Arizona State University)
Tucson (University of Arizona)
Arkansas[edit]
Copier après la connexion

Où les lignes avec "[edit]" indiquent les états et les lignes avec "[number]" indiquent les régions. Le DataFrame doit diviser les données en fonction de ces modèles et répéter le nom de l'état pour chaque nom de région.

Solution :

Pour y parvenir, nous pouvons suivre les étapes ci-dessous :

  1. Utilisez pandas pour lire le fichier texte en tant que DataFrame, en utilisant un point-virgule comme séparateur et en créant une colonne nommée "Nom de la région":
df = pd.read_csv('filename.txt', sep=";", names=['Region Name'])
Copier après la connexion
  1. Insérez une nouvelle colonne nommée « State » en utilisant la méthode d'extraction de chaîne pour extraire le nom de l'état des lignes contenant « [edit] ». Nous remplissons ensuite les valeurs manquantes à l'aide de forward fill (ffill) :
df.insert(0, 'State', df['Region Name'].str.extract('(.*)\[edit\]', expand=False).ffill())
Copier après la connexion
  1. Remplacez tout texte entre parenthèses par une chaîne vide dans la colonne "Nom de la région" pour supprimer les caractéristiques du nom de la région. :
df['Region Name'] = df['Region Name'].str.replace(r' \(.+$', '')
Copier après la connexion
  1. Supprimez les lignes contenant "[edit]" à l'aide de l'indexation booléenne et de la fonction str.contains. Le DataFrame résultant contient les données souhaitées :
df = df[~df['Region Name'].str.contains('\[edit\]')].reset_index(drop=True)
print (df)
Copier après la connexion

Exemple de sortie :

Le DataFrame de sortie ressemblera à ceci :

      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
Copier après la connexion

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!

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
Derniers articles par auteur
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!