In Python ist es möglich, einen DataFrame aus einem Wörterbuch zu erstellen, in dem jeder Eintrag ein Numpy-Array enthält. Allerdings ergeben sich Herausforderungen, wenn die Array-Längen zwischen den Einträgen variieren. Standardmäßig erfordert Pandas Arrays mit einheitlicher Länge, was zu Fehlern wie „ValueError: Arrays müssen alle die gleiche Länge haben“ führt.
Überwindung der Längendiskrepanz
Zu beheben Bei diesem Problem können wir die Fähigkeit von Pandas nutzen, NaN-Werte (Not-a-Number) als Platzhalter für fehlende Daten zu verwenden. Dadurch können wir effektiv einen DataFrame mit Spalten unterschiedlicher Länge erstellen.
Um dies zu erreichen, können wir jeden Wörterbucheintrag in eine Pandas-Serie konvertieren, ein eindimensionales Array, das fehlende Werte nahtlos verarbeiten kann. Indem wir die Wörterbuchelemente in einen Generatorausdruck einschließen und den Serienkonstruktor verwenden, können wir ein Wörterbuch von Serienobjekten erstellen.
import pandas as pd import numpy as np # Sample data with uneven array lengths data = { 'A': np.random.randn(5), 'B': np.random.randn(8), 'C': np.random.randn(4) } # Convert dictionary items to Series series_dict = dict((k, pd.Series(v)) for k, v in data.items()) # Create DataFrame from the dictionary of Series df = pd.DataFrame(series_dict)
Ergebnis:
In [1]: df Out[1]: A B C 0 1.162543 1.681243 0.191287 1 0.459621 -0.141198 -0.109864 2 -0.866704 -0.128677 -0.511496 3 1.222436 -0.371449 -0.705894 4 -0.980584 1.255133 NaN 5 NaN -0.351051 NaN 6 NaN 0.443017 NaN 7 NaN -1.053693 NaN
Wie offensichtlich, enthält der DataFrame fehlende Werte (NaN), bei denen sich die Array-Längen unterscheiden, sodass wir aus einem Wörterbuch mit unterschiedlichen Array-Längen einen DataFrame mit unterschiedlichen Spaltenlängen erstellen können.
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