6
で一緒ILOCは、私は、次のデータフレームがあると、私は2
を等しい1
に等しいカラムa
における最初の2つの要素に対応する列c
に2つの要素を変更します。使用LOCとパンダ
>>> df = pd.DataFrame({"a" : [1,1,1,1,2,2,2,2], "b" : [2,3,1,4,5,6,7,2], "c" : [1,2,3,4,5,6,7,8]})
>>> df.loc[df["a"] == 1, "c"].iloc[0:2] = 2
>>> df
a b c
0 1 2 1
1 1 3 2
2 1 1 3
3 1 4 4
4 2 5 5
5 2 6 6
6 2 7 7
7 2 2 8
ilocがコピーを設定するため、2番目の行のコードが機能しないため、元のデータフレームは変更されません。どうすればいい?
これは汚いとは思わない!これは、1つの軸に沿った位置で、もう一方の軸でのインデックスによるスライスのクラスの例です。 – piRSquared
私は1つの文字を保存することができました: 'df.loc [df.index [df.a == 1] [:2]、 'c'] = 2' – piRSquared
@piRSquared私は一般に' df [df [col] == some_value] 'の構文であり、ここで' df [df [df ['... ...だから私はそれを汚いと呼んだ。 :) – ayhan