pandas dataframe カラム名(列名) 取得

リストでカラム名一覧を取得

df.columns.values

以下、サンプル

import pandas as pd
import numpy as np

# DataFrame作成
df = pd.DataFrame([[25,'pika',88,'Electric',np.NaN,np.NaN],
                   [131,'rara',80,'Water','Ice',np.NaN],
                   [143,'gon',82,'Normal',np.NaN,np.NaN],
                   [3,'fushi',84,'Grass','Poison',np.NaN],
                   [6,'kage',84,'Fire','Flying',np.NaN],
                   [9,'kame',84,'Water',np.NaN,np.NaN]],
                  columns=['no','name','level','type1','type2','helditem'])

# カラム名の一覧取得
print(df.columns.values)

"""
['no', 'name', 'level', 'type1', 'type2', 'helditem']
"""

.valueの代わりに.to_list()でもOK

# カラム名の一覧取得
print(df.columns.to_list())

"""
['no', 'name', 'level', 'type1', 'type2', 'helditem']
"""

列数を数値で指定して1列分の列名を取得する

n列目のカラム名を取得したいときは以下となる

df.columns[n-1]

先頭を指定するときは0なので、取得したい列数から-1した値を設定する
また、1列分の列名を取得するときだけは.valuesはいらない
なので2列目のカラム名(’name’)を取得するサンプルは以下の通り

# 2列名のカラム名取得
print(df.columns[1])

"""
name
"""

列数を数値で指定して複数列の列名を取得する

[]で範囲を指定してから.valuesでリストを取得する

# 2~4列目のカラム名取得
print(df.columns[1:4].values)
# .to_list()を使うときは
# print(df.columns.to_list()[1:4])

"""
['name', 'level', 'type1']
"""

.valuesが必要な理由(df.columnsが分かれば分かる)

.values無しで実行してみると以下の様になる

# カラム名の一覧取得
print(df.columns)

"""
Index(['no', 'name', 'level', 'type1', 'type2', 'helditem'], dtype='object')
"""

pandas.index型で取得されてしまう
おそらくこの型で取得しても利用することはほぼ皆無でしょう
.valuesで値(リスト)を指定してあげることにより、リストで取得が可能となる

コメント

タイトルとURLをコピーしました