3 votes

sélectionner les lignes d'un tableau en fonction d'un id qui se trouve dans un JSON dans une colonne du tableau

J'ai besoin de sélectionner les lignes d'un tableau en fonction de l'id dans un JSON dans une des colonnes en utilisant Pandas.

exemple :

colonne_a

colonne_b

colonne_c

aaaa

bbbbb

{'id' : cc, 'name' : xx ...}

xxxx

yyyy

{'id' : ff, 'name' : gg ...}

Je veux donc sélectionner toutes les lignes où l'id du JSON dans la colonne_c est égal à 'cc', donc le résultat sera :

colonne_a

colonne_b

colonne_c

aaaa

bbbbb

{'id' : cc, 'name' : xx ...}

0voto

kstonekuan Points 9

Si vous avez déjà chargé ce fichier dans pandas, il s'agit probablement d'un dictionnaire auquel on peut accéder par clé, comme dans le cas d'un cadre de données, et vous devez donc filtrer comme suit :

df[df['column_c']['id'] == 'cc']

0voto

IoaTzimas Points 8393

Essayez ça :

import json

def func(x): #x is a string of json format
    s=json.loads(x)
    return s['id']=='cc'

Et filtrez le dataframe en appliquant la fonction ci-dessus à la colonne_c :

df[df['column_c'].apply(lambda x: func(x)]

Si cela ne fonctionne pas, cela signifie que column_c est d'un type différent. Dans ce cas, veuillez indiquer le type de cette colonne afin que je puisse adapter la solution.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X