来自嵌套字典的多索引数据框

Posted

技术标签:

【中文标题】来自嵌套字典的多索引数据框【英文标题】:multiindex dataframe from nested dictionary of sets 【发布时间】:2017-06-16 01:31:26 【问题描述】:

我有一个嵌套的日期集字典,d

d= "A": 'a': datetime1, datetime2, 'b': datetime3, 'c':datetime4,
    "B": 'a': datetime5, datetime1, datetime3

我想要一个 pandas DataFrame df

          dates   
A    a    datetime1
          datetime2
     b    datetime3
          ...

这可能是一个重复的问题 Nested dictionary to multiindex dataframe where dictionary keys are column labels

但是,我无法在这里获得该问题中给出的建议,因此我敢于重新发布该问题。 (但是,我之前曾在其他嵌套字典中成功使用过该问题中的方法)。所以,做类似的事情

df = pd.DataFrame.from_dict((i, j): d[i][j]
                                     for i in d.keys()
                                     for j in d[i].keys(),
                                     orient='index')

创建一个混乱的数千个整数作为列(每个日期可能一个?),元组 (i,j) 作为单个索引(而不是两级索引,i 和 j)。问题仅仅是因为我在数据框中只有一列吗?我不能有一个多索引系列吗?还是我遗漏了一些非常明显的东西?

【问题讨论】:

【参考方案1】:

我认为您应该将 dict 分成索引及其数据,然后创建 pd.MultiIndexpd.Series。我正在处理给定 here 的示例,但针对您的字典稍作修改。

index, series = zip(*[((i, j), d[i][j]) for i in d for j in d[i]])

index = pd.MultiIndex.from_tuples(index, names=['Captial', 'lowercase'])
series = pd.Series(series, index=index)

【讨论】:

第一行返回“ValueError: too many values to unpack (expected 2)”。你能建议一些轻微的修改吗? 亲爱的先生,你是救命稻草 :)

以上是关于来自嵌套字典的多索引数据框的主要内容,如果未能解决你的问题,请参考以下文章

从嵌套字典构造熊猫多索引数据框

如何从嵌套字典创建多索引数据框?

如何在嵌套字典中按元素访问熊猫多索引?

将多索引数据框的子集除以字典中的值

如何获取多索引数据帧的前两个索引的字典

多索引熊猫数据框到字典