Maison >développement back-end >Tutoriel Python >Comment puis-je créer un Pandas DataFrame à partir d'un fichier texte avec une structure spécifique qui inclut des modèles d'état et de région ?
La création d'un DataFrame Pandas à partir d'un fichier texte avec une structure spécifique nécessite une manipulation stratégique des données. Examinons le problème et explorons une solution pour transformer le texte fourni en DataFrame souhaité.
Le fichier texte suit une structure hiérarchique où :
Tout d'abord, lisez le fichier texte et créez un DataFrame à l'aide de read_csv(). Puisqu'il n'y a pas de délimiteurs spécifiques, spécifiez un séparateur personnalisé qui n'existe pas dans les données, comme un point-virgule :
<code class="python">df = pd.read_csv('filename.txt', sep=";", names=['Region Name'])</code>
Identifiez les lignes contenant les noms d'état à l'aide de la méthode str.extract() et des expressions régulières pour capturer le nom de l'état jusqu'à "[edit]". Créez une nouvelle colonne appelée « État » avec ces valeurs :
<code class="python">df.insert(0, 'State', df['Region Name'].str.extract('(.*)\[edit\]', expand=False).ffill())</code>
Supprimez les crochets et tous les caractères qu'ils contiennent de la colonne « Nom de la région » :
<code class="python">df['Region Name'] = df['Region Name'].str.replace(r' \(.+$', '')</code>
Supprimez les lignes où "[edit]" apparaît dans la colonne "Nom de la région". Créez un masque en utilisant str.contains() :
<code class="python">df = df[~df['Region Name'].str.contains('\[edit\]')].reset_index(drop=True)</code>
À ce stade, vous disposez d'un DataFrame avec les colonnes « État » et « Nom de la région », comme requis.
<code class="python">print(df)</code>
Si vous préférez inclure le texte entre crochets dans la colonne « Nom de la région », voici une solution modifiée :
<code class="python">df.insert(0, 'State', df['Region Name'].str.extract('(.*)\[edit\]', expand=False).ffill()) df = df[~df['Region Name'].str.contains('\[edit\]')].reset_index(drop=True) print(df)</code>
Cela produira un DataFrame avec les colonnes « État » et « Nom de la région », où les noms de région incluent le texte entre crochets.
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!