この記事では、Pythonのpandasライブラリを使って、列番号や列名を取得する方法について解説していきます。
ポイントとしては
・iloc
・index
・get_loc
を使用することです。
詳しく見ていきましょう!
Pandasにて行番号から行名を取得する方法
pandasを使用する際、特定の行番号からその行の名前を取得する必要が出てくることがあります。
以下はその方法を示すサンプルコードです。
import pandas as pd
サンプルデータの作成
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
}, index=['gyou1', 'gyou2', 'gyou3'])
行番号0の行名を取得
row_name = df.index[0]
print(row_name)
実行画面(jupyter notebook)は以下の通り。
上記のコードでは、行番号0に対応する行名(gyou1)が出力されます。
なお、1行目の配列は[0]と0から始まることにも気を付けましょう。
Pandasにて複数の行番号から行名を取得する方法【.index.values】
複数の行番号に対応する行名を一度に取得する方法もよく使用されます。
.indexではなく、.index.valuesとすることでリスト表記にて複数行名を取得できます。
以下はその方法を示すサンプルコードです。
# 複数の行番号から行名を取得
gyou_names = df.index.values[[0, 2]]
print(gyou_names)
このコードでは、行番号0と2(つまり1列目と3列目)に対応する行名が出力されます。
Pandasにて行名から行番号を取得する方法
逆に行名から行番号を取得する場合もあります。以下のサンプルコードでその方法を確認できます。
# 行名"gyou1"から行番号を取得
gyou_num = df.index.get_loc('gyou1')
print(gyou_num)
実行画面は以下の通り。
こちらのコードでは、行名gyou1に対応する行番号が出力されます。
出力結果の数値も0が1行目を意味することに注意です(^^)/
複数の行名から行番号を取得する方法
複数の行名からそれぞれの行番号を一度に取得する方法もあります。
以下はその方法を示すサンプルコードです。
# 複数の行名から行番号を取得
gyou_nums = [df.index.get_loc(name) for name in ['gyou1', 'gyou3']]
print(gyou_nums)
このコードを使用すると、行名gyou1とgyou3にそれぞれ対応する行番号が出力されます。
まとめ
以上、pandasで列番号や列名を取得する方法についての解説でした。
日常のデータ分析や前処理で非常に役立つ技術となっていますので、ぜひ活用してください!
コメント