在熊猫数据框单元格中插入列表

新手上路,请多包涵

我有一本字典,其中每个键都有一个值列表。与每个键关联的列表的长度是不同的。我想将字典转换为包含“键”和“值”两列的熊猫数据框。每行在“键”列中有一个字典键,在“值”列中有与其关联的值列表。数据框将如下所示:

 mapping_dict = {'A':['a', 'b', 'c', 'd'], 'B':['aa', 'bb', 'cc']}

df =
    Key   Value
0   A     ['a', 'b', 'c', 'd']
1   B     ['aa', 'bb', 'cc']

我尝试使用 此处 提供的答案,根据我的用例对其进行修改。但它没有输出所需的答案。

原文由 Ronak Thakkar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 478
2 个回答

在构造函数中使用 pd.Series ,因为 dict 值大小不相等,然后 set_axis 添加列名,即

mapping_dict = {'A':['a', 'b', 'c', 'd'], 'B':['aa', 'bb', 'cc']}

df = pd.DataFrame(pd.Series(mapping_dict).reset_index()).set_axis(['Key','Value'],1,inplace=False)

  Key         Value
0   A  [a, b, c, d]
1   B  [aa, bb, cc]

选项 2,将 dict 项转换为列表,然后将其传递给构造函数:

 df = pd.DataFrame(list(mapping_dict.items()),columns=['Key','Value'])

原文由 Bharath 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您传递一个列表,pandas 会将其视为多行。但是,您可以通过将列表作为外部列表的单个元素来欺骗它,如下所示:

 import pandas as pd
mapping_dict = {'A':[['a', 'b', 'c', 'd']], 'B':[['aa', 'bb', 'cc']]}
df = pd.DataFrame(mapping_dict)
df

        A                 B
0   [a, b, c, d]    [aa, bb, cc]

原文由 Afshin Amiri 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题