[ad_1]
以下のクエリをパンダに変換しようとしていますが、行き詰まっています。
SQL
SELECT * FROM temp_rejects WHERE reject_type = 'REWORK' ), rejects AS ( SELECT * FROM temp_rejects WHERE reject_type = 'SCRAP' ) SELECT rj.* FROM reworks rw LEFT JOIN rejects rj ON rw.barcode = rj.barcode AND rw.created_date < rj.created_date
私が試したこと:
私はそれを試しました:
Python
rewB4rej = data_manager.data['rejects_data'] rew = rewB4rej.query('reject_type == "REWORK"').reset_index() rej = rewB4rej.query('reject_type == "SCRAP"').reset_index() rewB4rej = rew.merge(rej, on=['barcode', (rew.created_date > rej.created_date)], how='left')
また、 .query() を使用しようとしましたが、「
Can only compare identically-labeled DataFrame objects
”
解決策 1
これは、列ラベルが一致しているが、インデックス ラベルが一致していないためだと考えられます。
あなたの場合、 インデックスを削除する そして試してください:
Python
rewB4rej = data_manager.data['rejects_data'] rew = rewB4rej.query('reject_type == "REWORK"').reset_index(drop=True) rej = rewB4rej.query('reject_type == "SCRAP"').reset_index(drop=True) rewB4rej = rew.merge(rej, on=['barcode', (rew.created_date > rej.created_date)], how='left')
[ad_2]
コメント