Heim >Backend-Entwicklung >Python-Tutorial >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?

Barbara Streisand
Barbara StreisandOriginal
2024-11-10 14:20:031061Durchsuche

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 umwandeln, 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

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.

Das obige ist der detaillierte Inhalt vonWie erstelle ich einen Pandas-DataFrame aus einem Wörterbuch mit unterschiedlichen Array-Längen?. 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