Dataframe 中的列具有字典列表,如该列的前5行:
'[{"id": 342658, "kind": "expectancy", "name": "custom_mais_de_5_anos", "category": "response"}, {"id": 709379, "kind": "diretoria", "name": "financeiro", "category": "filter"}, {"id": 727580, "kind": "categoria_do_cargo", "name": "empregado(a)", "category": "filter"}, {"id": 341788, "kind": "gerência", "name": "compras", "category": "filter"}, {"id": 342237, "kind": "cargo", "name": "comprador_sr", "category": "filter"}, {"id": 342554, "kind": "geração", "name": "geração_y", "category": "filter"}, {"id": 700055, "kind": "idade", "name": "37", "category": "filter"}, {"id": 1023221, "kind": "tempo_de_empresa", "name": "4-_entre_3_e_5_anos", "category": "filter"}, {"id": 699749, "kind": "n3", "name": "cind", "category": "filter"}]'
该列表有9个dict,每个dict有一个kind
键和name
值。
我想要做的是,以这样一种方式为我的 Dataframe 中的每一行分解这个dict列表,即新的 Dataframe 将有9个新列,并且columns_name应该是种类键。
就像这样:
'expectancy' 'categoria_do_cargo' 'diretoria' 'gerência' 'cargo' 'geração' 'idade' 'tempo_de_empresa' 'n3'
这些列名来自于字典的kind key
。
现在的技巧部分:
对于每一行,我都要为这9列中的每一列分配与该列名相等的kind
键的name
键值。
pd.DataFrame({'expectancy':['custom_entre_1_e_3_anos','custom_mais_de_5_anos'], 'categoria_do_cargo':['empregado(a)','empregado(a)'],'diretoria':['juridico','financeiro'], 'gerência':['relações_institucionais','compras'],'cargo':['analista_de_relações_institucionais_sr','comprador_sr'],'geração':['geração_x','geração_y'],'idade':[53,37],'tempo_de_empresa':['8-_mais_de_20_anos','4-_entre_3_e_5_anos'],'n3':['reli','cind']})
我该怎么做呢?
2条答案
按热度按时间myzjeezk1#
您有一个字符串列表,需要在重塑 Dataframe 之前将其转换为python数据结构:
htzpubme2#
一个更短的方法是利用
operator.itemgetter
函数(通过键获取字典值)并从字典列表中构造一个新的 Dataframe :