【问题标题】: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)。问题仅仅是因为我在数据框中只有一列吗?我不能有一个多索引系列吗?还是我遗漏了一些非常明显的东西?

【问题讨论】:

    标签: python python-3.x pandas


    【解决方案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)”。你能建议一些轻微的修改吗?
    • 亲爱的先生,你是救命稻草 :)
    猜你喜欢
    • 2022-07-01
    • 1970-01-01
    • 2016-02-10
    • 2022-07-14
    • 2016-11-13
    • 2021-06-21
    • 2021-11-24
    • 2018-06-03
    • 2021-02-04
    相关资源
    最近更新 更多