Maison >développement back-end >Tutoriel Python >Comment diviser efficacement une colonne de dictionnaires Pandas en colonnes distinctes ?

Comment diviser efficacement une colonne de dictionnaires Pandas en colonnes distinctes ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-26 14:30:13122parcourir

How to Efficiently Split a Pandas Column of Dictionaries into Separate Columns?

Comment diviser une colonne Pandas de dictionnaires en colonnes séparées

Dans un DataFrame Pandas, il est possible de rencontrer une colonne contenant des dictionnaires. Pour extraire les valeurs de ces dictionnaires dans des colonnes individuelles, la fonction json_normalize est une solution efficace.

Le code suivant démontre le processus :

import pandas as pd

df = pd.DataFrame()  # Your existing DataFrame with the dictionary column
df2 = pd.json_normalize(df['Pollutant Levels'])

Cela créera un nouveau DataFrame df2 avec le les valeurs de la colonne du dictionnaire « Niveaux de pollution » sont divisées en colonnes distinctes.

Gestion de différentes longueurs Listes :

L'exigence fournie précise que toutes les listes des dictionnaires contiennent les trois mêmes clés (« a », « b », « c ») mais pas nécessairement la même longueur. Pour cela, le code utilise json_normalize, qui gère automatiquement les longueurs de liste de variables en complétant les valeurs manquantes avec NaN.

Résolution du problème Unicode :

Si les valeurs du dictionnaire sont au format Unicode (u{'a' : '1', 'b' : '2', 'c' : '3'} au lieu de {u'a' : '1', u'b' : '2', u'c' : '3'}), le code fonctionnera toujours correctement. json_normalize peut gérer les deux types de chaînes Unicode.

Exemple avec Unicode :

Pour les données importées d'une base de données PostgreSQL au format Unicode :

import pandas as pd

# Convert the Unicode strings to strings
df['Pollutant Levels'] = df['Pollutant Levels'].astype('unicode')

# Use json_normalize to split the dictionary column
df2 = pd.json_normalize(df['Pollutant Levels'])

Cela convertira les chaînes Unicode en chaînes normales, puis divisera la colonne du dictionnaire en colonnes distinctes.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn