En Python, il est possible de créer un DataFrame à partir d'un dictionnaire où chaque entrée contient un tableau Numpy. Cependant, des défis surviennent lorsque la longueur des tableaux varie selon les entrées. Par défaut, Pandas nécessite des tableaux de longueur uniforme, ce qui entraîne des erreurs telles que « ValueError : les tableaux doivent tous avoir la même longueur. »
Surmonter l'écart de longueur
Pour résoudre Pour résoudre ce problème, nous pouvons exploiter la capacité de Pandas à utiliser les valeurs NaN (Not-a-Number) comme espaces réservés pour les données manquantes. En utilisant cela, nous pouvons créer efficacement un DataFrame avec des colonnes de différentes longueurs.
Pour y parvenir, nous pouvons convertir chaque entrée du dictionnaire en une série Pandas, un tableau unidimensionnel capable de gérer de manière transparente les valeurs manquantes. En encapsulant les éléments du dictionnaire dans une expression génératrice et en utilisant le constructeur Series, nous pouvons créer un dictionnaire d'objets Series.
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)
Résultat :
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
Comme évident, le DataFrame contient des valeurs manquantes (NaN) où les longueurs de tableau diffèrent, nous permettant de créer un DataFrame avec différentes longueurs de colonnes à partir d'un dictionnaire avec différentes longueurs de tableau.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3