pandas.DataFrameのjoin関数で少しはまったのでメモ。 2個のpandas.DataFrameを結合しようとして下記のコードを書いた。このとき、dfとotherに共通のカラムkeyで結合しようとしたのだが、エラーを吐いてしまった。
gisted6a13740d3bf16c8608f60e28a2a316
原因を調べるためネットでググると下記とのこと。
呼び出し元のpandas.DataFrameのキーとする列を引数onで指定できる。引数に指定する側のpandas.DataFrameは常にインデックスがキーとなる。
ちなみに参考にしたサイトはこちら。 note.nkmk.me
したがって、joinする2つのDataFrameに共通のカラムがあっても結合することができない。
対処法は簡単。右側のDataFrameの結合したいカラムをindexにするだけ。つまり、下記で結合できるようになる。
df.join(other.set_index("key"), on="key")