これはこの質問とかなり似た質問ですが、重要な違いが 1 つあります。インデックスではなく、いくつかの基準によって変更するデータを選択しています。
適用する基準が単一の行を返す場合、その行の特定の列の値を簡単な方法で設定できると期待していますが、最初の試みはうまくいきません:
>>> d = pd.DataFrame({'year':[2008,2008,2008,2008,2009,2009,2009,2009],
... 'flavour':['strawberry','strawberry','banana','banana',
... 'strawberry','strawberry','banana','banana'],
... 'day':['sat','sun','sat','sun','sat','sun','sat','sun'],
... 'sales':[10,12,22,23,11,13,23,24]})
>>> d
day flavour sales year
0 sat strawberry 10 2008
1 sun strawberry 12 2008
2 sat banana 22 2008
3 sun banana 23 2008
4 sat strawberry 11 2009
5 sun strawberry 13 2009
6 sat banana 23 2009
7 sun banana 24 2009
>>> d[d.sales==24]
day flavour sales year
7 sun banana 24 2009
>>> d[d.sales==24].sales = 100
>>> d
day flavour sales year
0 sat strawberry 10 2008
1 sun strawberry 12 2008
2 sat banana 22 2008
3 sun banana 23 2008
4 sat strawberry 11 2009
5 sun strawberry 13 2009
6 sat banana 23 2009
7 sun banana 24 2009
2009 年の日曜日のバナナの売り上げを 100 に設定しても、何も起こりません! これを行う最も良い方法は何ですか? 理想的には、ソリューションでは行番号を使用する必要があります。通常、事前にわからないためです。