Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erstelle ich einen Pandas-DataFrame aus einer Textdatei mit bestimmten Mustern?

Wie erstelle ich einen Pandas-DataFrame aus einer Textdatei mit bestimmten Mustern?

Barbara Streisand
Barbara StreisandOriginal
2024-11-02 13:14:02348Durchsuche

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

Erstellen eines Pandas-Datenrahmens aus einer Textdatei mit bestimmten Mustern

Sie müssen einen Pandas-Datenrahmen aus einer Textdatei mit der folgenden Struktur erstellen :

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]

Die Zeilen mit „[bearbeiten]“ geben Staaten an, während die Zeilen mit „[Nummer]“ Regionen angeben. Die Aufgabe besteht darin, die Datei anhand dieser Muster aufzuteilen und den Staatsnamen für jeden Regionsnamen zu wiederholen.

Lösung:

  1. Lesen Sie die Textdatei mit Pandas ' read_csv-Funktion, die den Spaltennamen als „Regionsname“ angibt, da kein Trennzeichen vorhanden ist.
  2. Erstellen Sie eine neue Spalte mit dem Namen „State“ mithilfe der String-Extraktion, um die Statusnamen aus den Zeilen mit „[edit]“ und zu erfassen Füllen Sie die Werte vorwärts aus.
  3. Ersetzen Sie alle Zeichen von der öffnenden Klammer „(“ bis zum Ende der Zeichenfolge in der Spalte „Regionsname“.
  4. Filtern Sie die Zeilen heraus, die „[bearbeiten]“ enthalten. " unter Verwendung einer booleschen Indizierung basierend auf einer Maske, die mit String Contains erstellt wurde.

Dieser Vorgang führt zum gewünschten Pandas DataFrame mit den Spalten „Status“ und „Regionsname“.

Beispiel:

<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>

Ausgabe:

      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

Das obige ist der detaillierte Inhalt vonWie erstelle ich einen Pandas-DataFrame aus einer Textdatei mit bestimmten Mustern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn