当前位置: 首页 > 知识库问答 >
问题:

从字典创建数据帧[重复]

索嘉石
2023-03-14

字典的键是日期,值是一个长度不同的列表

例如,字典是

dict = { '2017-09-01' : [A B] , '2017-09-02' : [C D E] }

我想要的是像这样的数据帧

date            Message
2017-09-01      A
2017-09-01      B
2017-09-02      C
2017-09-02      D
2017-09-02      E

共有1个答案

严易安
2023-03-14

您可以使用列表理解来展平词典,然后从中构造数据帧:

d = { '2017-09-01' : ['A', 'B'] , '2017-09-02' : ['C', 'D', 'E'] }

pd.DataFrame(
    [(k, val) for k, vals in d.items() for val in vals], 
    columns=['date', 'message']
)

#         date  message
#0  2017-09-01        A
#1  2017-09-01        B
#2  2017-09-02        C
#3  2017-09-02        D
#4  2017-09-02        E

或者使用pandas.stack的更长的解决方案:

(pd.DataFrame.from_dict(d, 'index').stack()
   .rename('message')
   .rename_axis(('date', ''))
   .reset_index(level=0)
   .reset_index(drop=True))

#         date  message
#0  2017-09-01        A
#1  2017-09-01        B
#2  2017-09-02        C
#3  2017-09-02        D
#4  2017-09-02        E
 类似资料:
  • 我需要从不同的字典中创建一个熊猫数据框架,其中键必须作为数据框架内的列名。如果数据帧没有将键列为列,则必须动态创建键,并将其作为新列附加到数据帧。 我希望输入为, 输出应该是,, 循环的第一次迭代将键作为数据框的列名称,如果没有数据框,则创建值作为第一行的数据框。 第二次迭代检查键是否作为列出现在数据帧中,如果已经出现则插入,否则创建列并插入值作为第二行。 我确实不知道如何在python中动态运行

  • 拿着字典: 我如何把这个字典变成一个数据框,其中的值是列?即。我想要一个数据框显示: 这种形式似乎根本得不到! 谢谢 这是一个不同的问题,另一个问题只是问如何将字典的值放入数据帧,我问的是如何获得我概述的特定形式

  • 我有一本字典的形式: 例如, 我想转换成熊猫数据帧与列1的用户名和其他列的电影评级,即: 但是,一些用户没有对电影进行评分,因此这些电影不包括在该用户键()的值()中。在这种情况下,只需用NaN填充条目就好了。 现在,我迭代键,填充列表,然后使用此列表创建数据帧: 但这只给了我一个用户的数据框,这些用户对片场中的所有电影都进行了评分。 我的目标是通过迭代电影标签(而不是上面显示的暴力方法)来追加到

  • 问题内容: 我想从值中创建一个字典,我从excel单元中获取,我的代码如下, 我想创建一个字典,如下所示,其中包含来自excel单元格的值; 关于如何创建此字典的任何想法吗? 问题答案:

  • 这就是Firebase里面的样子 这就是我的代码的样子:

  • 我有一个包含18个数据帧的列表: 所有数据帧都有一个公共id列,因此很容易将它们与pd连接在一起。一次合并2个。有没有一种方法可以一次将它们连接起来,从而使dfList作为单个数据帧返回?