Wie erstellt man einen Pandas DataFrame aus einer Textdatei mit bestimmten Mustern, wobei Zustände durch „[edit]' und Regionen durch „[number]' angegeben werden?

Susan Sarandon
Freigeben: 2024-11-02 07:03:29
Original
156 Leute haben es durchsucht

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

Erstellen eines Pandas-Datenrahmens aus einer Textdatei mit bestimmten Mustern

Problemstellung:

Das Ziel besteht darin, einen Pandas DataFrame aus einer Textdatei zu erstellen, die die folgende Struktur hat:

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]
Nach dem Login kopieren

Wobei Zeilen mit „[edit]“ Zustände und Zeilen mit „[number]“ Regionen angeben. Der DataFrame sollte die Daten basierend auf diesen Mustern aufteilen und den Statusnamen für jeden Regionsnamen wiederholen.

Lösung:

Um dies zu erreichen, können wir die folgenden Schritte ausführen :

  1. Verwenden Sie Pandas, um die Textdatei als DataFrame zu lesen, verwenden Sie ein Semikolon als Trennzeichen und erstellen Sie eine Spalte mit dem Namen „Regionsname“:
df = pd.read_csv('filename.txt', sep=";", names=['Region Name'])
Nach dem Login kopieren
  1. Fügen Sie eine neue Spalte mit dem Namen „State“ ein, indem Sie die String-Extraktionsmethode verwenden, um den Statusnamen aus Zeilen zu extrahieren, die „[edit]“ enthalten. Anschließend füllen wir die fehlenden Werte mit der Vorwärtsfüllung (ffill) aus:
df.insert(0, 'State', df['Region Name'].str.extract('(.*)\[edit\]', expand=False).ffill())
Nach dem Login kopieren
  1. Ersetzen Sie den in Klammern eingeschlossenen Text durch eine leere Zeichenfolge in der Spalte „Regionsname“, um die Merkmale des Regionsnamens zu entfernen :
df['Region Name'] = df['Region Name'].str.replace(r' \(.+$', '')
Nach dem Login kopieren
  1. Entfernen Sie Zeilen, die „[edit]“ enthalten, mithilfe der booleschen Indizierung und der Funktion str.contains. Der resultierende DataFrame enthält die gewünschten Daten:
df = df[~df['Region Name'].str.contains('\[edit\]')].reset_index(drop=True)
print (df)
Nach dem Login kopieren

Beispielausgabe:

Der Ausgabe-DataFrame sieht wie folgt aus:

      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
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erstellt man einen Pandas DataFrame aus einer Textdatei mit bestimmten Mustern, wobei Zustände durch „[edit]' und Regionen durch „[number]' angegeben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!