我有一个 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方式做到这一点?
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