1
votes

Liste de dictionnaire dans pandas?

J'ai une colonne dont les valeurs sont stockées sous forme de liste. La colonne ressemble à:

{'firebase_screen_class': 'MainViewController',
 'firebase_event_origin': 'auto',
 'firebase_screen_id': '81265142482196321',
 'engagement_time_msec': '3374'}

Je veux convertir ceci en une colonne qui ressemble à:

[{'key': 'firebase_screen_class', 'value': 'MainViewController'},
 {'key': 'firebase_event_origin', 'value': 'auto'},
 {'key': 'firebase_screen_id', 'value': '81265142482196321'},
 {'key': 'engagement_time_msec', 'value': '3374'}]


1 commentaires

Astuce: pour chaque clé, sa valeur est la clé pour vous et pour la valeur sa clé est la valeur pour vous.


4 Réponses :


1
votes

vous pouvez simplement le faire en utilisant la boucle for:

l1 = [{'key': 'firebase_screen_class', 'value': 'MainViewController'},
     {'key': 'firebase_event_origin', 'value': 'auto'},
     {'key': 'firebase_screen_id', 'value': '81265142482196321'},
     {'key': 'engagement_time_msec', 'value': '3374'}]
final_dict = {}
for d1 in l1:
    final_dict[d1['key']] = d1['value']

print final_dict


0 commentaires

4
votes

Utilisez une compréhension de dictionnaire:

{d['key']:d['value'] for d in col}

col est votre colonne d'origine.


0 commentaires

1
votes
list = [{'key': 'firebase_screen_class', 'value': 'MainViewController'},
        {'key': 'firebase_event_origin', 'value': 'auto'},
        {'key': 'firebase_screen_id', 'value': '81265142482196321'},
        {'key': 'engagement_time_msec', 'value': '3374'}]

result = dict()

for d in list:
     result[d['key']] = d['value']

0 commentaires

0
votes
def dd(arr):
    di = {}
    for j in arr:
        di[j['key']] = j['value']
    return di

df['new_cil'] = df['col'].map(dd)

0 commentaires