Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich eine Pandas DataFrame-Spalte mit Wörterbüchern effizient in separate Spalten aufteilen?

Wie kann ich eine Pandas DataFrame-Spalte mit Wörterbüchern effizient in separate Spalten aufteilen?

DDD
DDDOriginal
2024-12-16 04:21:13440Durchsuche

How to Efficiently Split a Pandas DataFrame Column of Dictionaries into Separate Columns?

Aufteilen einer Wörterbuchspalte in separate Spalten mit Pandas

Problemeinführung

Bei der Arbeit Bei Pandas DataFrames kommt es häufig vor, dass eine Spalte Wörterbücher als Werte enthält. Dies kann bei der weiteren Datenanalyse zu Herausforderungen führen, da die Wörterbücher zur besseren Zugänglichkeit und Handhabung in separate Spalten aufgeteilt werden müssen. Dieses Problem wird besonders relevant, wenn die Wörterbücher unterschiedliche Längen haben und gemeinsame Schlüssel enthalten.

Ursprünglicher Ansatz und Fehler

Der Benutzer im Forumbeitrag beschreibt einen DataFrame, bei dem „ Die Spalte „Schadstoffgehalt“ enthält Wörterbücher. Zunächst wurde versucht, diese Spalte mithilfe des folgenden Codes zu teilen:

objs = [df, pandas.DataFrame(df['Pollutant Levels'].tolist()).iloc[:, :3]]
df2 = pandas.concat(objs, axis=1).drop('Pollutant Levels', axis=1)

Diese Methode führte jedoch zu einem IndexError aufgrund von Slicing außerhalb der Grenzen.

Unicode-Problem

Der Benutzer vermutet außerdem, dass es sich möglicherweise um das Unicode-Format der Wörterbücher in der Spalte „Schadstoffgehalt“ handelt das Problem verursacht. Sie haben die Form:

u{'a': '1', 'b': '2', 'c': '3'}

statt:

{u'a': '1', u'b': '2', u'c': '3'}

Lösung

Um diese Probleme anzugehen, wird der folgende Ansatz empfohlen :

import pandas as pd

df['Pollutant Levels'] = df['Pollutant Levels'].apply(lambda x: dict(x))
df2 = pd.json_normalize(df['Pollutant Levels'])

Erklärung

Die Die erste Codezeile konvertiert die Unicode-Wörterbücher in Standardwörterbücher. Die zweite Zeile nutzt die Funktion json_normalize von Pandas, die eine bequeme Möglichkeit bietet, eine Spalte mit Wörterbüchern in separate Spalten umzuwandeln. Diese Funktion vermeidet die Notwendigkeit kostspieliger Anwendungsfunktionen und erzeugt den gewünschten DataFrame:

Station ID     a      b       c
8809           46     3       12
8810           36     5       8
8811           NaN    2       7
8812           NaN    NaN     11
8813           82     NaN     15

Das obige ist der detaillierte Inhalt vonWie kann ich eine Pandas DataFrame-Spalte mit Wörterbüchern effizient in separate Spalten aufteilen?. 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