如何使用MultIndex进行计算?

问题描述 投票:0回答:1

我有一个 Pandas DataFrame,其中包含坐标值(X,Y)、温度(T)和测量结果(H)

df=pd.DataFrame([
    {'X':0,'Y':0,'T':25,'H':1.2},
    {'X':1,'Y':0,'T':25,'H':1.3},
    {'X':0,'Y':1,'T':25,'H':1.4},
    {'X':1,'Y':1,'T':25,'H':1.5},
    {'X':0,'Y':0,'T':125,'H':2.2},
    {'X':1,'Y':0,'T':125,'H':2.4},
    {'X':0,'Y':1,'T':125,'H':2.6},
    {'X':1,'Y':1,'T':125,'H':2.8},
])
df=df.set_index(['X','Y','T'])

现在我想计算每个坐标点温度下测量值的差异:H(T=125)-H(T=25) 所以我想得到

{'X':0,'Y':0,'dH':1.0}
{'X':1,'Y':0,'dH':1.1}
{'X':0,'Y':1,'dH':1.2}
{'X':1,'Y':1,'dH':1.3}

如何以Python方式做到这一点?

python-3.x pandas
1个回答
0
投票

使用

xs
选择并计算差异:

df.xs(125, level='T').sub(df.xs(25, level='T'))

输出:

       H
X Y     
0 0  1.0
1 0  1.1
0 1  1.2
1 1  1.3
© www.soinside.com 2019 - 2024. All rights reserved.