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 der ValueError auftreten: „Arrays müssen alle dieselbe Länge haben.“
Um dies zu umgehen Problem: Wir nutzen Objekte der Pandas-Serie, die Arrays unterschiedlicher Länge enthalten können. Indem wir jeden Wörterbuchwert in eine Reihe konvertieren, können wir die Arrays unabhängig von ihrer Länge effektiv speichern. Der folgende Codeausschnitt demonstriert 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)
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.
Bei Bedarf können Sie die Behandlung fehlender Werte anpassen, indem Sie den Parameter „missing_values“ im DataFrame verwenden( ) 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)
Die folgende Ausgabe veranschaulicht einen DataFrame, der mit dem oben beschriebenen Ansatz erstellt wurde:
print(df)
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
Wie Sie sehen können, führen die kürzeren Arrays zu NaN-Werten in den entsprechenden Zellen und bieten so eine umfassende Darstellung Ihrer Daten unter Beibehaltung des gewünschten Tabellenformats.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3