„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie erstelle ich einen Pandas-DataFrame aus einem Wörterbuch mit unterschiedlichen Array-Längen?

Wie erstelle ich einen Pandas-DataFrame aus einem Wörterbuch mit unterschiedlichen Array-Längen?

Veröffentlicht am 09.11.2024
Durchsuche:750

How to Create a Pandas DataFrame from a Dictionary with Varying Array Lengths?

Erstellen von DataFrames aus Wörterbüchern mit ungleichmäßigen Eintragslängen

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.

Neuestes Tutorial Mehr>

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