Как создать колонки из списка словарей
Необходимо конвертировать колонку players(список с словарями), чтобы ключи стали названием новых колонок, а значения строками в едином датафрейме. Подскажите, пожалуйста, как это сделать? Пробовала сделать так:
exploded_df = team.explode('players' ,ignore_index = True)
pd.json_normalize(exploded_df['players'])
pd.concat([exploded_df.drop('players', axis = 1), \
pd.json_normalize(exploded_df['players'])], axis = 1)
,но на этапе explode, ничего не меняется. Пробовала еще так:
team = team.join(team["players"].apply(pd.Series))
тоже ничего не изменилось
[{'deaths_pos': {'112': {'126': 1}}, 'ability_uses': {'tusk_snowball': 1, 'tusk_launch_snowball': 1, 'tusk_tag_team': 1, 'tusk_walrus_punch': 1}, 'ability_targets': {}, 'item_uses': {'phase_boots': 3, 'tpscroll': 1, 'magic_stick': 1}, 'killed': {}, 'deaths': 1, 'buybacks': 0, 'damage': 591, 'healing': 60, 'gold_delta': -9, 'xp_delta': 282, 'xp_start': 2208, 'xp_end': 2490}, {'deaths_pos': {}, 'ability_uses': {'void_spirit_astral_step': 2, 'void_spirit_aether_remnant': 2, 'void_spirit_resonant_pulse': 2, 'void_spirit_dissimilate': 2}, 'ability_targets': {}, 'item_uses': {'tpscroll': 1, 'bottle': 4, 'magic_wand': 1}, 'killed': {'npc_dota_hero_shadow_shaman': 1}, 'deaths': 0, 'buybacks': 0, 'damage': 1365, 'healing': 553, 'gold_delta': 376, 'xp_delta': 493, 'xp_start': 3722, 'xp_end': 4215}, {'deaths_pos': {}, 'ability_uses': {'terrorblade_conjure_image': 1}, 'ability_targets': {}, 'item_uses': {'quelling_blade': 1}, 'killed': {}, 'deaths': 0, 'buybacks': 0, 'damage': 0, 'healing': 0, 'gold_delta': 428, 'xp_delta': 518, 'xp_start': 4651, 'xp_end': 5169}, {'deaths_pos': {}, 'ability_uses': {'grimstroke_spirit_walk': 1, 'grimstroke_ink_creature': 1, 'grimstroke_dark_artistry': 2}, 'ability_targets': {}, 'item_uses': {'tango': 1}, 'killed': {}, 'deaths': 0, 'buybacks': 0, 'damage': 282, 'healing': 0, 'gold_delta': 0, 'xp_delta': 0, 'xp_start': 1969, 'xp_end': 1969}, {'deaths_pos': {'102': {'126': 1}}, 'ability_uses': {'enigma_malefice': 1}, 'ability_targets': {}, 'item_uses': {}, 'killed': {}, 'deaths': 1, 'buybacks': 0, 'damage': 427, 'healing': 0, 'gold_delta': 53, 'xp_delta': 109, 'xp_start': 4103, 'xp_end': 4212}, {'deaths_pos': {}, 'ability_uses': {'ursa_earthshock': 3}, 'ability_targets': {}, 'item_uses': {'phase_boots': 3, 'clarity': 1, 'quelling_blade': 1}, 'killed': {}, 'deaths': 0, 'buybacks': 0, 'damage': 0, 'healing': 0, 'gold_delta': 420, 'xp_delta': 581, 'xp_start': 5353, 'xp_end': 5934}, {'deaths_pos': {'106': {'124': 1}}, 'ability_uses': {'shadow_shaman_voodoo': 1, 'shadow_shaman_mass_serpent_ward': 1, 'shadow_shaman_ether_shock': 1, 'shadow_shaman_shackles': 1}, 'ability_targets': {}, 'item_uses': {'magic_stick': 1}, 'killed': {'npc_dota_hero_enigma': 1}, 'deaths': 1, 'buybacks': 0, 'damage': 2564, 'healing': 90, 'gold_delta': 442, 'xp_delta': 353, 'xp_start': 2689, 'xp_end': 3042}, {'deaths_pos': {}, 'ability_uses': {'beastmaster_call_of_the_wild_boar': 1}, 'ability_targets': {}, 'item_uses': {'quelling_blade': 1}, 'killed': {}, 'deaths': 0, 'buybacks': 0, 'damage': 0, 'healing': 0, 'gold_delta': 287, 'xp_delta': 661, 'xp_start': 3518, 'xp_end': 4179}, {'deaths_pos': {}, 'ability_uses': {'nevermore_shadowraze3': 3, 'nevermore_shadowraze2': 2, 'nevermore_shadowraze1': 1}, 'ability_targets': {}, 'item_uses': {'faerie_fire': 1, 'magic_wand': 1, 'cyclone': 1, 'tpscroll': 1}, 'killed': {'npc_dota_hero_tusk': 1}, 'deaths': 0, 'buybacks': 0, 'damage': 1539, 'healing': 325, 'gold_delta': 749, 'xp_delta': 1092, 'xp_start': 7511, 'xp_end': 8602}, {'deaths_pos': {}, 'ability_uses': {}, 'ability_targets': {}, 'item_uses': {}, 'killed': {}, 'deaths': 0, 'buybacks': 0, 'damage': 0, 'healing': 0, 'gold_delta': 182, 'xp_delta': 308, 'xp_start': 1588, 'xp_end': 1896}]