Restando el valor específico del grupo de las filas en pandas
En Pandas tengo un marco de datos que consta de dos grupos con varias muestras en cada grupo. Cada grupo tiene un valor de referencia interno que quiero restar de todos los valores de muestra dentro de ese grupo.
s = u"""Group sample value
group1 ref1 18.1
group1 smp1 NaN
group1 smp2 20.3
group1 smp3 30.0
group2 ref2 16.1
group2 smp4 29.2
group2 smp5 19.9
group2 smp6 28.9
"""
df = pd.read_csv(io.StringIO(s), sep='\s+')
df = df.set_index(['Group', 'sample'])
df
Out[82]:
value
Group sample
group1 ref1 18.1
smp1 NaN
smp2 20.3
smp3 30.0
group2 ref2 16.1
smp4 29.2
smp5 19.9
smp6 28.9
Lo que quiero hacer es agregar una nueva columna donde la referencia (ref) se haya restado de todas las muestras (smp) dentro de cada grupo respectivo. Me gusta esto:
value deltaValue
SampleGroup sample
Group1 ref 18.1 0
smp1 NaN NaN
smp2 20.3 2.2
smp3 30.0 11.9
Group2 ref2 16.1 0
smp4 29.2 13.1
smp5 19.9 3.8
smp6 28.9 12.8
¿Alguien sabe cómo se puede hacer esto? ¡Gracias!