質問: pd.DataFrame({"選手ID": [239, 9310, 120], "名前": ['田中', '前田', '佐藤']}) ``` ``` df.head() ``` | 個人ID | 出身地 | | --- | --- | | 120 | 沖縄県 | | 239 | 北海道 | | 9310 | 東京都 | | 3921 | 大阪 | ``` dftest.head() ``` | 選手ID | 名前 | | --- | --- | | 239 | 田中 | | 9310 | 前田 | | 120 | 佐藤 | 上記条件のときに、以下の表を得たいです。 | 選手ID | 名前 | 出身地 | | --- | --- | --- | | 239 | 田中 | 北海道 | | 9310 | 前田 | 東京都 | | 120 | 佐藤 | 沖縄県 | | どなたかご教示頂けると幸いです。 | | | | よろしくお願いいたします。 | | |
回答: ID をキーに内部結合すればよいと思います。 公式ドキュメント pandas.merge — pandas 1.0.5 documentation 解説 pandas - DataFrame を結合する pandas.merge の使い方 ``` import pandas as pd df1 = pd.DataFrame({"選手ID": [239, 9310, 120], "名前": ["田中", "前田", "佐藤"]}) df2 = pd.DataFrame({"個人ID": [120, 239, 9310, 3921], "出身地": ["沖縄県", "北海道", "東京都", "大阪"]}) df = df1.merge(df2, left_on="選手ID", right_on="個人ID").drop("個人ID", axis=1) df ``` | | 選手ID | 名前 | 出身地 | | --- | --- | --- | --- | | 0 | 239 | 田中 | 北海道 | | 1 | 9310 | 前田 | 東京都 | | 2 | 120 | 佐藤 | 沖縄県 |