熊猫字典有两个或多个键

时间:2018-01-19 19:45:45

标签: pandas dictionary dataframe

我有一个像这样的pandas数据框:

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  

这样当我调用一个位置时,我可以根据测试编号(第二个键)访问值。

2 个答案:

答案 0 :(得分:1)

df = df.set_index(["Location", "Test No."]) # Columns for dict keys df_dict = df.to_dict("index") # Turn into dict

答案 1 :(得分:1)

你有pandas数据帧,你只需要堆叠它

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