Pandas 有两个或多个键的字典

Pandas 有两个或多个键的字典,pandas,dictionary,dataframe,Pandas,Dictionary,Dataframe,我有一个熊猫数据框,看起来像这样: Location Test No. Type Value.1 Value.2 M-1 Test1 A 0.020 2.912 M-1 Test2 B 0.072 20.21 M-1 Test3 A 0.010 4.888 M-1 Test4 C 0.045 9.461

我有一个熊猫数据框,看起来像这样:

Location    Test No.    Type    Value.1 Value.2
M-1         Test1       A       0.020   2.912
M-1         Test2       B       0.072   20.21
M-1         Test3       A       0.010   4.888
M-1         Test4       C       0.045   9.461
M-2         Test1       B       0.020   2.912
M-2         Test2       B       0.072   20.21
M-2         Test3       C       0.010   4.888
Location    Test No.    Type    Value.1 Value.2
M-1         Test1       A       0.020   2.912
            Test2       B       0.072   20.21
            Test3       A       0.010   4.888
            Test4       C       0.045   9.461
M-2         Test1       B       0.020   2.912
            Test2       B       0.072   20.21
            Test3       C       0.010   4.888  
我想使用第一列和第二列作为键将其转换为字典。我想,我需要一本这样的字典:

Location    Test No.    Type    Value.1 Value.2
M-1         Test1       A       0.020   2.912
M-1         Test2       B       0.072   20.21
M-1         Test3       A       0.010   4.888
M-1         Test4       C       0.045   9.461
M-2         Test1       B       0.020   2.912
M-2         Test2       B       0.072   20.21
M-2         Test3       C       0.010   4.888
Location    Test No.    Type    Value.1 Value.2
M-1         Test1       A       0.020   2.912
            Test2       B       0.072   20.21
            Test3       A       0.010   4.888
            Test4       C       0.045   9.461
M-2         Test1       B       0.020   2.912
            Test2       B       0.072   20.21
            Test3       C       0.010   4.888  
因此,当我调用一个位置时,我可以根据测试编号(第二个键)访问值

df=df.set_索引([“位置”,“测试编号])#dict键列

df_dict=df.to_dict(“index”)#变成dict

您有熊猫数据帧,您只需与它叠加即可

df=df.set_index(['Location','TestNo.'])
df
Out[298]: 
                 Type  Value.1  Value.2
Location TestNo.                       
M-1      Test1      A    0.020    2.912
         Test2      B    0.072   20.210
         Test3      A    0.010    4.888
         Test4      C    0.045    9.461
M-2      Test1      B    0.020    2.912
         Test2      B    0.072   20.210
         Test3      C    0.010    4.888
df.loc[('M-1','Test1')]
Out[299]: 
Type           A
Value.1     0.02
Value.2    2.912
Name: (M-1, Test1), dtype: object

正如我所希望的:)这个效果很好。我没有想到仅仅使用数据框。谢谢:)@Bob yw~:-)因为df可以携带更多信息:-)