初心者データサイエンティストの備忘録

調べたことは全部ここに書いて自分の辞書を作る

pandas.DataFrame.joinの右側DataFrameのキーは、indexしか指定できない

 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")