pandas
.ix、.iloc、.loc、.at、および.iatを使用してDataFrameにアクセスする
サーチ…
.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