Wie konstruiere ich Pandas-DataFrames aus Wörterbüchern mit ungleichmäßigen Array-Längen?

Mary-Kate Olsen
Freigeben: 2024-11-09 11:10:02
Original
643 Leute haben es durchsucht

How to Construct Pandas DataFrames from Dictionaries with Uneven Array Lengths?

Erstellen von Datenrahmen aus Wörterbüchern mit ungleichmäßigen Array-Längen

Der Umgang mit Wörterbüchern mit Arrays ungleicher Längen in Pandas erfordert einen maßgeschneiderten Ansatz. Beim Versuch, einen DataFrame zu erstellen, bei dem jede Spalte ein Array im Wörterbuch darstellt, kann es zu dem ValueError kommen: „Arrays müssen alle die gleiche Länge haben.“

Nutzung von Serienobjekten

Um dies zu umgehen Problem: Wir nutzen Objekte der Pandas-Serie, die Arrays unterschiedlicher Länge enthalten können. Durch die Konvertierung jedes Wörterbuchwerts in eine Reihe können wir die Arrays unabhängig von ihrer Länge effektiv speichern. Der folgende Codeausschnitt veranschaulicht diesen Ansatz:

import pandas as pd
import numpy as np

# Sample data generated via a reproducible seed
np.random.seed(2023)
data = {k: np.random.randn(v) for k, v in zip("ABCDEF", [10, 12, 15, 17, 20, 23])}

# Convert dictionary values to Series objects
series_dict = {k: pd.Series(v) for k, v in data.items()}

# Create DataFrame using these Series objects
df = pd.DataFrame(series_dict)
Nach dem Login kopieren

Beibehalten fehlender Werte

Beim Arbeiten mit Arrays unterschiedlicher Länge kommt es häufig vor, dass fehlende Werte auftreten, wenn kürzere Arrays die verbleibenden Zellen nicht füllen können. Standardmäßig füllt Pandas diese Lücken mit NaN-Werten (Not a Number). Dieses Verhalten bewahrt die Originaldaten und bietet gleichzeitig eine konsistente Struktur für die Analyse.

Konfigurieren der Behandlung fehlender Werte

Bei Bedarf können Sie die Behandlung fehlender Werte anpassen, indem Sie den Parameter „missing_values“ im DataFrame( ) Konstruktor. Um beispielsweise fehlende Werte durch Nullen anstelle von NaN zu ersetzen, würden Sie fehlende_Werte=0 wie unten gezeigt angeben:

df = pd.DataFrame(series_dict, missing_values=0)
Nach dem Login kopieren

Beispielausgabe

Die folgende Ausgabe veranschaulicht einen mit diesem Ansatz erstellten DataFrame oben beschrieben:

print(df)
Nach dem Login kopieren
      A         B         C         D         E         F
0  0.711674 -1.076522 -1.502178 -1.519748  0.340619  0.051132
1 -0.324485 -0.325682 -1.379593  2.097329 -1.253501 -0.238061
2 -1.001871 -1.035498 -0.204455  0.892562  0.370788 -0.208009
3  0.236251 -0.426320  0.642125  1.596488  0.455254  0.401304
4 -0.102160 -1.029361 -0.181176 -0.638762 -2.283720  0.183169
...       ...       ...       ...       ...       ...       ...
18       NaN       NaN       NaN       NaN       NaN       NaN
19       NaN       NaN       NaN       NaN       NaN       NaN
20       NaN       NaN       NaN       NaN       NaN       NaN
21       NaN       NaN       NaN       NaN       NaN       NaN
22       NaN       NaN       NaN       NaN       NaN       NaN
23 rows × 6 columns
Nach dem Login kopieren

Wie Sie beobachten können, führen die kürzeren Arrays zu NaN-Werten in den entsprechenden Zellen. Bereitstellung einer umfassenden Darstellung Ihrer Daten unter Beibehaltung des gewünschten Tabellenformats.

Das obige ist der detaillierte Inhalt vonWie konstruiere ich Pandas-DataFrames aus Wörterbüchern mit ungleichmäßigen Array-Längen?. 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