This post is also available in: English-US (英語)
pandas を使っていて 「.loc」 で値を取り出そうとすると下記のようなエラーが出る現象について、備忘録的にメモを書いています。
KeyError: "Passing list-likes to .loc or [] with any missing labels is no longer supported.
上記エラーのよく見る解決法としては、存在しないキーに対して loc で参照しているから...というもので、「.reindex()」関数使って、存在するキーだけにしたら良いよというものかと思います。
ですが、キーが存在している(はずなのに)のに上記エラーが出てくる場合には、キーを int で渡してしまっている場合とかでも、同様のエラーが出ます。もう少し具体的に書くと、loc に渡している値が str のつもりで、実は int で渡しているという場合にエラーが出てハマる可能性があります。
loc に int を渡すと、インデックスのラベルとして解釈されるみたいです。
参考:
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.loc.html