単純な (そして一般的な) アプローチの 1 つは、関心のあるサブセットを含むデータフレームのビューを作成し (または、場合によっては、無視する列を除くすべての列を含むビュー)、そのために APPLY を使用することです。見る。
In [116]: df
Out[116]:
a b c d f
0 one 3 0.493808 a bob
1 two 8 0.150585 b alice
2 one 6 0.641816 c michael
3 two 5 0.935653 d joe
4 one 1 0.521159 e kate
お気に入りの方法を使用して、必要なビューを作成します。so のように列の範囲を選択することもできますdf_view = df.ix[:,'b':'d']
が、シナリオでは次のほうが役立つ場合があります。
#I want all columns except two
cols = df.columns.tolist()
mycols = [x for x in cols if not x in ['a','f']]
df_view = df[mycols]
そのビューに関数を適用します。(これは df ではまだ何も変更されていないことに注意してください。)
In [158]: df_view.apply(lambda x: x /2)
Out[158]:
b c d
0 1 0.246904 20
1 4 0.075293 25
2 3 0.320908 28
3 2 0.467827 28
4 0 0.260579 24
update() を使用して df を更新します
In [156]: df.update(df_view.apply(lambda x: x/2))
In [157]: df
Out[157]:
a b c d f
0 one 1 0.246904 20 bob
1 two 4 0.075293 25 alice
2 one 3 0.320908 28 michael
3 two 2 0.467827 28 joe
4 one 0 0.260579 24 kate