まず、ステージを設定させてください。
次のようなpandas
dataframeから始めます。klmn
In [15]: klmn
Out[15]:
K L M N
0 0 a -1.374201 35
1 0 b 1.415697 29
2 0 a 0.233841 18
3 0 b 1.550599 30
4 0 a -0.178370 63
5 0 b -1.235956 42
6 0 a 0.088046 2
7 0 b 0.074238 84
8 1 a 0.469924 44
9 1 b 1.231064 68
10 2 a -0.979462 73
11 2 b 0.322454 97
次に、「K」列の値に従って、klmn
2 つのデータフレームに分割します。klmn0
klmn1
In [16]: k0 = klmn.groupby(klmn['K'] == 0)
In [17]: klmn0, klmn1 = [klmn.ix[k0.indices[tf]] for tf in (True, False)]
In [18]: klmn0, klmn1
Out[18]:
( K L M N
0 0 a -1.374201 35
1 0 b 1.415697 29
2 0 a 0.233841 18
3 0 b 1.550599 30
4 0 a -0.178370 63
5 0 b -1.235956 42
6 0 a 0.088046 2
7 0 b 0.074238 84,
K L M N
8 1 a 0.469924 44
9 1 b 1.231064 68
10 2 a -0.979462 73
11 2 b 0.322454 97)
最後に、列の値でグループ化されたのM
列の平均を計算します。klmn0
L
In [19]: m0 = klmn0.groupby('L')['M'].mean(); m0
Out[19]:
L
a -0.307671
b 0.451144
Name: M
さて、私の質問は、列の値を考慮して、サブデータフレームの列からどのように減算できますか? m0
M
klmn1
L
(これは、列に含まれる各行の列から が減算されることを意味し、同様m0['a']
に. )M
klmn1
'a'
L
m0['b']
M
の列の値を新しい値に置き換える方法でこれを行うことを想像できklmn1
ます (から値を引いた後m0
)。または、これを変更せずにそのままにして、代わりに更新された列を持つklmn1
新しいデータフレームを生成することを想像することもできます。 私は両方のアプローチに興味があります。klmn11
M