具有两个或多个键的熊猫字典



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

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_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

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

最新更新