はじめに
DataFrameを使っていて、表題のことを解説されているサイトが見つからなかったので、共有します。
デフォルトのIndexラベルを指定する方法です。
基本的なatメソッドの使い方
動作確認用
解説
まずは、適当なDataFrameを準備します。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(12).reshape(3, 4),
columns=['col_0', 'col_1', 'col_2', 'col_3'],
index=['row_0', 'row_1', 'row_2'])
↓こんなDataFrameが作られます。
このDataFrameから、row_1
行目のcol_2
列目の値を取得する場合は、以下のようにします。
df.at["row_1", "col_2"]
# => 6
ここまでは、基本的なatメソッドの使い方です。
本題
それでは、Indexラベルが指定されていない場合はどうでしょうか。
動作確認用
解説
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(12).reshape(3, 4),
columns=['col_0', 'col_1', 'col_2', 'col_3'])
↓こんなDataFrameを作ります。
Indexラベルがないですね。
(インデックスの名前が、デフォルトの0、1、2となっている)
このDataFrameの1
行目、col_2
列目の値を取得したい場合はどうすれば良いでしょうか。
実は、以下の書き方で取得できました。
df.at[1, "col_2"]
# => 6
1には””がいらないようです。
df.at["1", "col_2"]
# => エラー!
ちなみに↑こうするとエラーが出るのでご注意下さい。
今までは、iatメソッドやilocメソッドで、インデックス指定するしかないと思っていましたが、デフォルトインデックスでもラベル指定ができるんですね!
さいごに
今回は、atメソッドでデフォルトのIndexラベルを指定する方法を、共有させて頂きました。
最後まで読んで頂いて、ありがとうございます。
何か、ツッコミがあればぜひTwitter等で連絡をお待ちしております。