【Python】pandasのlocでcolumsを指定した際にエラーが出た時の対処法【備忘録】

Python
スポンサーリンク

勉強中のpandasのlocでcolumsを指定した際にエラーが出て焦ったので対処法を備忘録も兼ねて残しておきます。

スポンサーリンク

原因と対処法

以下のデータフレームからlocを使ってデータを取得します。

import pandas as pd
df = pd.DataFrame(
                  [
                    ["ID001", "ヤマダ"], 
                    ["ID002", "タナカ"],
                    ["ID003", "スズキ"],
                  ],
                  index=["1件目", "2件目","3件目"],
                  columns=["ID", "名前"])
	ID	名前
1件目	ID001	ヤマダ
2件目	ID002	タナカ
3件目	ID003	スズキ

試しに「名前」列のみ取得してみます。

df.loc[["名前"]]

ところが上記コードを実行してみた所、以下のエラーが発生してしまいました。

KeyError: "None of [Index(['名前'], dtype='object')] are in the [index]"

要約すると「インデックス名の中に「名前」っていうインデックス名はないよ」とのことで、この書き方だと列名でなくインデックス名の方を探しに行ってしまっているみたいです。

#こっちならいける

df.loc[["1件目"]]
	ID	名前
1件目	ID001	ヤマダ

どうやら列名を指定する場合はdf.loc[:,["【列名】"]]のように列名の前にコロンとカンマを付けないとダメみたいです。

#["名前"]の前に「:,」を付ける

df.loc[:,["名前"]]

こうすることで「名前」列のみ取得することができました。

	名前
1件目	ヤマダ
2件目	タナカ
3件目	スズキ
スポンサーリンク

まとめ

今回はpandasのlocでcolumsを指定した際にエラーが出た時の対処法を紹介しました。

このブログではExcel・PCに関する記事も不定期で投稿していますので、是非併せてご覧ください!

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