разделить каждый ключ в данных словаря на стек и группу - PullRequest
0 голосов
/ 18 января 2020

У меня есть данные об инциденте со многими списками и словарными данными. Каждый инцидент имеет одну строку со многими жертвами и подозревает характеристики (тип, имя, возраст и т. Д. c.), Которые мне нужно разделить.

Incident_ID    date     #injured     type_dict                   age_dict     Name
    278  1-1-2014   1      {'0': 'Victim'}                           {'0':20}   
    279  1-1-2014   4      unknown
    280  1-1-2014   2      {'0': 'Victim', '1': 'Suspect'}           {'0':25, '1':17}  
    281  1-2-2014   4      {'0': 'Victim', '1': 'Victim', '2':'Victim', '3':'Suspect'}     {'0':27, '1':17, '2': 33, '3':40}  
    282  1-2-2014   4      {'0': 'Victim', '1': 'Victim', '2':'Victim', '3':'Suspect'}     {'0':20, '1':17, '2': 30, '3':10}  
    283  1-3-2014   3      {'0': 'Victim', '1': 'Victim', '2':'Suspect'} {'0':20, '1':31, '2': 13, '3':50} 

Мне нужна некоторая обработка данных, как показано ниже

1) to group by date to count (#injured) with each injury characteristics
2) to split key & value (both are strings) of dictionary data ('type_dict', 'age_dict',& name_dict etc.)
3) to make (the value of keys) as (the label or col)  
4) to stack vertically (& append) each value of keys '0', '1', '2'... 



ID    date     #injured   type_key type_value   Name          age
278  1-1-2014   1           0         Victim       aa            20  
279  1-1-2014   4         unknown
280  1-1-2014   1           0         Victim       ab            25
280  1-1-2014   1           1         Suspect      cd            17  
281  1-2-2014   1           0         Victim       ef            27 
281  1-2-2014   1           1         Victim       gh            17 
281  1-2-2014   1           2         Victim       ij            33    
281  1-2-2014   1           3         Suspect      jj            40

Я попытался разделить данные словаря и преобразовать список значений (вторая часть dict) в столбец. L oop гарантирует, что столбцы содержат type_key и type_value данных словаря (type_dict).

До сих пор я делал с кодом ниже.

dictList = type_dict.items()
for key, value in type_dict.items():
    dictList.append([key, value])

или

l=[]
for x in type_dict:
    x2=x.split(':')
    label=x2[0]
    col=x2[1]
    while len(l) < col+1:
        l.append({})

==> l [col] [str (len (l [col] .keys ()))] = label
Это правильно?

Ничего не произошло, поэтому, пожалуйста, помогите мне out.

list (type_dict.keys ())

list (type_dict.values ​​()) разделит пары ключ-значение.

Но я получил либо TypeError: ' numpy .ndarray 'объект не может быть вызван или ошибка атрибута' dict 'объект не имеет атрибута' split '.

Мне нужно реорганизовать данные из (одна строка на инцидент) в (несколько строк на инцидент ) и объединить три словаря группировки данных по инциденту. (type_key_value_list, age_list, name_list) как показано ниже:

date  incident  type_key   type_value    age   name
2014-1-1    281   '0'         'Victim'     27    ef 
            281   '1'         'Victim'     17    gh
            281   '2'         'Victim'     33    ij
            281   '3'         'Suspect'    40    jj
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...