前回、マッチングリストと一致する主担当とデータフレーム内の担当が一致した場合に
チーム番号を返したいという質問をさせていただいた者です。
実は別のDFで頂いた解決方法マージをしようとしたところエラーが発生し、原因はcolumnsがmultiindexだったためなのですが、この場合のmerge方法についてご教示いただきたくよろしくお願いします。
◆エラーメッセージ
ValueError: The column label '主担当' is not unique.
For a multi-index, the label must be a tuple with elements corresponding to each level.
◆恵様より頂いた解決策
df3 = pd.merge(df1, df2, on='主担当') df3 = df3.drop(['副担当_x','副担当_y'], axis=1) df3['チーム番号'] = df3['チーム番号_x'].astype(str) + ',' + df3['チーム番号_y'].astype(str) df3 = df3.drop(['チーム番号_x','チーム番号_y'], axis=1) answer_list = [i for i in df3['主担当'] if i in matching_list] df3 = df3[df3['主担当'].isin(answer_list)]
df3 = pd.merge(df1, df2, on='主担当')でエラーが発生してしまいました。
知りたいこと
Multiindex のvalueのままで マージするパターン もしくは
Multiindex のvalueを解除してマージするのいずれかの方法が知りたいです。
◆Columnの構造
MultiIndex([('馬番', '馬番'),
('騎手', '騎手'),
('厩舎', '厩舎')],
)
◆これまでのいきさつ
とある企業の担当リストを抽出し以下の通り複数加工ました。
⓵ dataframe 2つ
⓶ マッチングリスト リスト型 1つ
◆DF1 : tantou_df1['202002020201']
*チーム番号、主担当、副担当が multiindex
◆DF2 : tantou_df1['202002020202']
*チーム番号、主担当、副担当が multiindex
以下のマッチングリストと上記DF内の主担当名が一致する場合
チーム番号を抽出したいです
マッチングリスト
イメージ説明
↓
例)抽出した対象のチーム番号を取得しデータフレーム化する。
丹内 1 , 11
国分恭 5 , 9
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。