为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫,字典列表,其中值是列表。将字典键转换为列名。将值列表中的每个元素转换为一行

熊猫,字典列表,其中值是列表。将字典键转换为列名。将值列表中的每个元素转换为一行

梵蒂冈之花 2022-09-27 16:09:27
我有一个字典列表,其中的值是另一个列表[ {111: [1, 2, 3]}, {112:[4, 5, 6]}, {113:[7,8,9]}]我想把它们放在熊猫数据帧中,这样字典键就是列名,列表中的每个元素都有自己的行所以断续器111    112    1131        4         72        5         83        6        9
查看完整描述

4 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

IIUC,您可以编写一个列表理解并明智地连接您的数据帧轴。


import pandas as pd

d = [ {111: [1, 2, 3]}, {112:[4, 5, 6]}, {113:[7,8,9]}]


df = pd.concat([pd.DataFrame.from_dict(inner_dict,orient='columns') for inner_dict in d],axis=1)


print(df)


   111  112  113

0    1    4    7

1    2    5    8

2    3    6    9


查看完整回答
反对 回复 2022-09-27
?
繁星coding

TA贡献1797条经验 获得超4个赞

试一试:collections.ChainMap


from collections import ChainMap


d = [{111: [1, 2, 3]}, {112:[4, 5, 6]}, {113:[7,8,9]}]

df = pd.DataFrame({**ChainMap(*d[::-1])})


Out[79]:

   111  112  113

0    1    4    7

1    2    5    8

2    3    6    9


查看完整回答
反对 回复 2022-09-27
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

import pandas as pd

a  = [ {111: [1, 2, 3]}, {112:[4, 5, 6]}, {113:[7,8,9]}]


for item in a:

    for k, v in item.items():

        df[k] = v


df


    111 112 113

0   1   4   7

1   2   5   8

2   3   6   9


查看完整回答
反对 回复 2022-09-27
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

也许这个使用字典理解?


data = [{ 111: [1, 2, 3] }, { 112: [4, 5, 6] }, { 113: [7,8,9] }]

pd.DataFrame({ title: values for column in data for title, values in column.items() })

但是,您可能最好将数据存储为大熊猫可以立即识别的字典。{ title: [value] }


data = { 111: [1, 2, 3], 112: [4, 5, 6], 113: [7, 8, 9] }

pd.DataFrame(data)


查看完整回答
反对 回复 2022-09-27
  • 4 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信