如何将带有元组键的python字典转换为pandas多索引数据框?

问题描述

我有一个元组为键的python字典,例如:

dict={('m1',17):4,('m1',12):2,1):5,('m3',11):4,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'])

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

解决方法

这有效:

from pandas import DataFrame,MultiIndex

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

尝试使用Series

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