サーチ…


.ilocの使用

.ilocは整数を使用してDataFrameにデータを読み書きします。

まず、DataFrameを作成しましょう:

df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
                   'two': [6, 7, 8, 9, 10],
              }, index=['a', 'b', 'c', 'd', 'e'])

このDataFrameは次のようになります。

   one  two
a    1    6
b    2    7
c    3    8
d    4    9
e    5   10

これで、.ilocを使って値を読み書きできます。最初の行、最初の列を読みましょう:

print df.iloc[0, 0]

これは印刷されます:

1

値を設定することもできます。 2番目の列、2番目の行を新しいものに設定します。

df.iloc[1, 1] = '21'

そして、何が起こったのか見てみましょう:

print df 

   one two
a    1   6
b    2  21
c    3   8
d    4   9
e    5  10

.locの使用

.locはラベルを使用してデータを読み書きします。

DataFrameをセットアップしましょう:

df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
                   'two': [6, 7, 8, 9, 10],
                  }, index=['a', 'b', 'c', 'd', 'e'])

次に、DataFrameを印刷して形状を見てみましょう。

print df 

これは出力されます

   one  two
a    1    6
b    2    7
c    3    8
d    4    9
e    5   10

.locを使用してデータにアクセスするには、列ラベルと行ラベルを使用します。行 'c'、列 'two'を値33に設定しましょう:

df.loc['c', 'two'] = 33 

これは、DataFrameの外観です。

   one  two
a    1    6
b    2    7
c    3   33
d    4    9
e    5   10

df['two'].loc['c'] = 33すると、警告が表示されないことがありますが、 df.loc['c', 'two']を使って正しく動作することが保証されている、前者はそうではありません。

たとえば、データのスライスを読み取ることができます

print df.loc['a':'c'] 

行aからcを印刷します。これは包括的です。

   one  two
a    1    6
b    2    7
c    3    8

最後に、我々は両方を一緒にすることができます:

print df.loc['b':'d', 'two']

列 'b'を列 'b'のcに出力します。列ラベルは印刷されません。

b    7
c    8
d    9

.locにラベルではない整数引数が指定されている場合、.locは軸の整数インデックス化(.ilocの動作)に戻ります。これにより、混合ラベルと整数の索引付けが可能になります。

df.loc['b', 1]

行 'b'の第2列(インデックスは0から始まる)の値を返します。

7


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow