具有两个或多个键的 Pandas 字典

标签 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  

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

最佳答案

你有 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

关于具有两个或多个键的 Pandas 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48348470/

相关文章:

python - 检查 pandas 数据框中一行中的元素是否为 NaN 然后替换它

python - 如何注释用 Prince 库绘制的散点

python - 为 Pandas 数据框中B列中的绝对数字分配A列中的相同值

c# - 如何将数组转换为字典

python - Pandas 用字典替换值

python - 在 Pandas Dataframe 中调用并分配特定变量

pandas - 通过 groupby.apply 创建新列时如何避免临时变量

键上 dict 正则表达式的 Python dict

r - 计算几个列案例的出现次数

python - 如何聚合盘中时间戳并在 Pandas 数据框 Python 中创建新列