パンダのデータフレームのサブセットに値を割り当てる一般的で効率的な方法はありますか? 直接アクセスできる何百もの行と列がありますが、各行と列のペアを反復せずにそれらの値を編集する方法を見つけることができませんでした。例えば:
In [1]: import pandas, numpy
In [2]: array = numpy.arange(30).reshape(3,10)
In [3]: df = pandas.DataFrame(array, index=list("ABC"))
In [4]: df
Out[4]:
0 1 2 3 4 5 6 7 8 9
A 0 1 2 3 4 5 6 7 8 9
B 10 11 12 13 14 15 16 17 18 19
C 20 21 22 23 24 25 26 27 28 29
In [5]: rows = ['A','C']
In [6]: columns = [1,4,7]
In [7]: df[columns].ix[rows]
Out[7]:
1 4 7
A 1 4 7
C 21 24 27
In [8]: df[columns].ix[rows] = 900
In [9]: df
Out[9]:
0 1 2 3 4 5 6 7 8 9
A 0 1 2 3 4 5 6 7 8 9
B 10 11 12 13 14 15 16 17 18 19
C 20 21 22 23 24 25 26 27 28 29
ここで起こっていることは、ビューではなくコピーを取得していることだと思います。つまり、元の DataFrame に割り当てることはできません。それは私の問題ですか?これらの行 x 列を編集する最も効率的な方法は何ですか (DataFrame が大量のメモリを消費する可能性があるため、できればインペースで)?
また、これらの値を正しい形状の DataFrame に置き換えたい場合はどうすればよいでしょうか?