Maison > développement back-end > Tutoriel Python > Comment puis-je diviser efficacement les colonnes de dictionnaire imbriquées dans des DataFrames Pandas avec des longueurs inégales ?

Comment puis-je diviser efficacement les colonnes de dictionnaire imbriquées dans des DataFrames Pandas avec des longueurs inégales ?

Mary-Kate Olsen
Libérer: 2024-12-28 06:27:15
original
858 Les gens l'ont consulté

How Can I Efficiently Split Nested Dictionary Columns in Pandas DataFrames with Unequal Lengths?

Diviser les colonnes des dictionnaires imbriqués dans Pandas avec json_normalize

En Python, lorsque vous travaillez avec des DataFrames Pandas, il est possible de rencontrer des cas où le la dernière colonne contient des dictionnaires imbriqués. Pour extraire ces valeurs dans des colonnes séparées, vous pourriez rencontrer des difficultés si les dictionnaires ne sont pas de longueur égale.

Cet article présente une solution utilisant la fonction json_normalize(). Voici un exemple :

import pandas as pd

# Sample DataFrame with a column of nested dictionaries
df = pd.DataFrame({
    'Station ID': ['8809', '8810', '8811', '8812', '8813'],
    'Pollutant Levels': [
        {'a': '46', 'b': '3', 'c': '12'},
        {'a': '36', 'b': '5', 'c': '8'},
        {'b': '2', 'c': '7'},
        {'c': '11'},
        {'a': '82', 'c': '15'},
    ]
})

# Extract columns using json_normalize
df2 = pd.json_normalize(df['Pollutant Levels'])

# Concatenate with original DataFrame
df = pd.concat([df, df2], axis=1)

# Drop the original 'Pollutant Levels' column
df = df.drop(columns=['Pollutant Levels'])

print(df)
Copier après la connexion

Sortie :

   Station ID  a  b  c
0       8809  46  3  12
1       8810  36  5  8
2       8811  NaN  2  7
3       8812  NaN  NaN  11
4       8813  82  NaN  15
Copier après la connexion

Cette approche extrait efficacement les valeurs du dictionnaire imbriquées dans des colonnes séparées, gérant ainsi le problème des longueurs variables du dictionnaire. La fonction json_normalize() convertit efficacement les données JSON imbriquées dans un format tabulaire, éliminant ainsi le besoin de fonctions d'application complexes.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal