Créer un DataFrame Pandas vide, puis le remplir
Remplir itérativement un DataFrame avec des valeurs
À l'aide de la documentation DataFrame donnée, vous souhaitez itérativement remplissez le DataFrame avec des valeurs dans un calcul de type série chronologique. L'objectif est d'initialiser le DataFrame avec les colonnes A, B et les lignes d'horodatage, toutes 0 ou toutes NaN. Ensuite, vous souhaitez ajouter des valeurs initiales et parcourir ces données en calculant la nouvelle ligne à partir de la ligne précédente, disons row[A][t] = row[A][t-1] 1 ou plus.
Bien que le code actuel utilisant les itérateurs, la fonction zéros de scipy et datetime puisse fonctionner, il peut être amélioré.
Pourquoi ne pas développer un DataFrame par ligne ?
La croissance d'un DataFrame par ligne n'est généralement pas recommandée pour les raisons suivantes :
-
Coût de calcul : Ajouter à une liste et créer un DataFrame en une seule fois nécessite moins de calculs que de créer un DataFrame vide et de l'ajouter encore et encore encore une fois.
-
Utilisation de la mémoire : Les listes occupent moins de mémoire et constituent une structure de données plus légère à utiliser que les DataFrames, ce qui les rend plus efficaces pour l'ajout et la suppression.
-
Inférence de type de données : Si vous ajoutez à un DataFrame, vous risquez de vous retrouver avec des colonnes d'objets, ce qui peut nuire aux performances des pandas. Les listes, quant à elles, permettent de déduire automatiquement des types.
-
Gestion des index : Un RangeIndex est automatiquement créé pour vos données lorsque vous créez un DataFrame à partir d'une liste, ce qui vous évite le les tracas liés à la gestion de l'index vous-même.
L'approche recommandée : accumuler des données dans un list
Au lieu de développer un DataFrame par ligne, il est préférable d'accumuler les données dans une liste puis d'initialiser un DataFrame en utilisant pd.DataFrame(data). Cette approche offre les avantages suivants :
-
Efficacité : Elle est plus efficace sur le plan informatique et nécessite moins de mémoire.
-
Flexibilité : Les listes peuvent être converti aux formats liste de listes et liste de dictés, qui sont acceptés par pd.DataFrame.
-
Commodité : Il gère automatiquement la gestion des index et l'inférence des types de données.
Alternatives à considérer
Lors de l'accumulation de données dans une liste est l'approche préférée, il existe deux pires alternatives à éviter :
-
Ajouter ou concaténer à l'intérieur d'une boucle : Ceci est inefficace et sujet aux erreurs car cela réalloue de la mémoire à plusieurs reprises et peut conduire à des colonnes d'objet.
-
Créer un vide DataFrame of NaNs : Cette approche crée également des colonnes d'objets et nécessite un index manuel gestion.
Conclusion
Pour remplir efficacement un DataFrame avec des valeurs, il est préférable d'accumuler les données dans une liste puis d'initialiser le DataFrame à l'aide de pd.DataFrame(data). Cette méthode est efficace, flexible et pratique, ce qui en fait l'approche privilégiée pour travailler avec les DataFrames pandas.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!