Список к словарю в пандах? - PullRequest
1 голос
/ 29 марта 2019

У меня есть столбец, значения которого хранятся в виде списка. Столбец выглядит так:

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

Я хочу преобразовать это в столбец, который выглядит следующим образом:

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

Ответы [ 4 ]

4 голосов
/ 29 марта 2019

Используйте словарь:

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

, где col - ваш исходный столбец.

1 голос
/ 29 марта 2019
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']
1 голос
/ 29 марта 2019

Вы можете просто сделать это используя цикл 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 голосов
/ 29 марта 2019
def dd(arr):
    di = {}
    for j in arr:
        di[j['key']] = j['value']
    return di

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