【问题标题】:How can i convert a python dictionary with tuple keys to a pandas multi Index data frame?如何将带有元组键的 python 字典转换为 pandas 多索引数据框?
【发布时间】:2021-01-02 07:36:42
【问题描述】:

我有一个以元组为键的 python 字典:

dict={('m1',17):4,('m1',12):2,('m1',1):5,('m3',11):4,('m3',17):15}

我想把它转换成这样的熊猫数据框:

m1 17 4
   12 2
   1  5
m3 11 4
   17 15

我尝试了以下方法:

df1=pd.DataFrame(dict)
df2=pd.DataFrame.from_dict(dict)
df3=pd.Series(dict.values(),index=pd.MultiIndex.from_tuples(dict.keys(), names=['site','id'])

但是,没有任何效果。 (我还需要命名索引列和值列)

【问题讨论】:

    标签: python pandas dictionary multi-index


    【解决方案1】:

    这行得通:

    from pandas import DataFrame, MultiIndex
    
    d = {('m1', 17): 4, ('m1', 12): 2, ('m1', 1): 5, ('m3', 11): 4, ('m3', 17): 15}
    data = DataFrame(
        data={'column_name': list(d.values())}, 
        index=MultiIndex.from_tuples(tuples=d.keys(), names=['site', 'id'])
    )
    

    【讨论】:

    • 这几乎可以工作,但是值的列名与键的列名在不同的行中。
    • pandas 就是这样显示的。答案是正确的。
    【解决方案2】:

    试试Series

    s = pd.Series(d)
    Out[198]: 
    m1  17     4
        12     2
        1      5
    m3  11     4
        17    15
    dtype: int64
    

    【讨论】:

      猜你喜欢
      • 2017-03-24
      • 2018-06-03
      • 2022-01-07
      • 2018-02-01
      • 2022-01-25
      • 2021-12-29
      • 2018-09-12
      • 1970-01-01
      相关资源
      最近更新 更多