Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich einen Pandas DataFrame aus einer Textdatei mit einer bestimmten Struktur erstellen, die Zustands- und Regionsmuster enthält?

Wie kann ich einen Pandas DataFrame aus einer Textdatei mit einer bestimmten Struktur erstellen, die Zustands- und Regionsmuster enthält?

Barbara Streisand
Barbara StreisandOriginal
2024-11-03 03:05:02674Durchsuche

How can I create a Pandas DataFrame from a text file with a specific structure that includes state and region patterns?

Pandas DataFrame aus einer Textdatei mit Zustands- und Regionsmustern lesen und formen

Das Erstellen eines Pandas DataFrame aus einer Textdatei mit einer bestimmten Struktur erfordert strategische Datenmanipulation. Lassen Sie uns das Problem untersuchen und eine Lösung finden, um den bereitgestellten Text in den gewünschten DataFrame umzuwandeln.

Datenstruktur

Die Textdatei folgt einer hierarchischen Struktur, wobei:

  • Zeilen mit „[bearbeiten]“ sind Staatsnamen.
  • Zeilen mit „[Nummer]“ sind Regionen Namen.
  • Regionsnamen sollten für denselben Bundesstaat wiederholt werden.

Lösung

1. Lesen der Textdatei

Lesen Sie zunächst die Textdatei und erstellen Sie einen DataFrame mit read_csv(). Da es keine spezifischen Trennzeichen gibt, geben Sie ein benutzerdefiniertes Trennzeichen an, das in den Daten nicht vorhanden ist, z. B. ein Semikolon:

<code class="python">df = pd.read_csv('filename.txt', sep=";", names=['Region Name'])</code>

2. Staatsnamen extrahieren

Identifizieren Sie die Zeilen mit Staatsnamen mithilfe der Methode str.extract() und regulären Ausdrücken, um den Staatsnamen bis zu „[bearbeiten]“ zu erfassen. Erstellen Sie eine neue Spalte namens „State“ mit diesen Werten:

<code class="python">df.insert(0, 'State', df['Region Name'].str.extract('(.*)\[edit\]', expand=False).ffill())</code>

3. Klammerinformationen aus Regionsnamen entfernen

Entfernen Sie die Klammern und alle darin eingeschlossenen Zeichen aus der Spalte „Regionsname“:

<code class="python">df['Region Name'] = df['Region Name'].str.replace(r' \(.+$', '')</code>

4. Statuskopfzeilen entfernen

Löschen Sie die Zeilen, in denen „[bearbeiten]“ in der Spalte „Regionsname“ erscheint. Erstellen Sie eine Maske mit str.contains():

<code class="python">df = df[~df['Region Name'].str.contains('\[edit\]')].reset_index(drop=True)</code>

5. Endgültiger DataFrame

Zu diesem Zeitpunkt haben Sie je nach Bedarf einen DataFrame mit den Spalten „Bundesstaat“ und „Regionsname“.

<code class="python">print(df)</code>

Erweiterte Lösung

Wenn Sie Fügen Sie den Text in Klammern lieber in die Spalte „Regionsname“ ein. Hier ist eine modifizierte Lösung:

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

Dadurch wird ein DataFrame mit erstellt Spalten „Bundesstaat“ und „Regionsname“, wobei die Regionsnamen den Text in Klammern enthalten.

Das obige ist der detaillierte Inhalt vonWie kann ich einen Pandas DataFrame aus einer Textdatei mit einer bestimmten Struktur erstellen, die Zustands- und Regionsmuster enthält?. 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