3

階層インデックスの特定のレベルにあるいくつかの行の DataFrame エントリを変更したいと考えています。標準的な例を次に示します。

>>> index = pd.MultiIndex.from_arrays([['a','a', 'b', 'b'], [1,2,1,2]], 
...                                   names=['first', 'second'])
>>> data = pd.DataFrame(np.random.rand(len(index)), index=index, columns=['A'])
>>> print data
                     A
first second          
a     1       0.587781
      2       0.560407
b     1       0.492996
      2       0.267799

行を 0 に設定したいと思いsecond==2ます (たとえば)。メソッドを使用してみDataFrame.xsましたが、ビューではなくコピーを返します:

>>> selected = data.xs(2, level='second')
>>> print selected
              A
first          
a      0.560407
b      0.267799

>>> selected['A']=0
>>> print data

                    A
first second          
a     1       0.587781
      2       0.560407
b     1       0.492996
      2       0.267799

最後の割り当ては影響しませんでしたdata(もちろん値が変更されましたselected)。

4

1 に答える 1

4

パンダの最近のバージョンではhelp(data.xs)、データのビューを取得する方法を示しています。

を使用して実行できますxs arg copy=False

于 2012-10-25T12:49:13.240 に答える