[解決済み] Pandasの左外部結合は左テーブルより大きなテーブルを生成する
2022-11-22 18:22:44
質問
左外部結合について私が理解するところでは、結果のテーブルが左のテーブルより多くの行を持つことはないはずです。
私の左のテーブルは192572行と8列です。
私の右のテーブルは、42160行と5列です。
私の左のテーブルには 'id' というフィールドがあり、右のテーブルの 'key' というカラムと一致します。
したがって、私はそのようにそれらをマージします。
combined = pd.merge(a,b,how='left',left_on='id',right_on='key')
しかし、そうすると、結合された形状は236569となります。
私は何を勘違いしているのでしょうか?
どのように解決するのですか?
キーが他のDataFrameの複数の行と一致する場合、これが増加することが予想されます。
In [11]: df = pd.DataFrame([[1, 3], [2, 4]], columns=['A', 'B'])
In [12]: df2 = pd.DataFrame([[1, 5], [1, 6]], columns=['A', 'C'])
In [13]: df.merge(df2, how='left') # merges on columns A
Out[13]:
A B C
0 1 3 5
1 1 3 6
2 2 4 NaN
この挙動を回避するために 重複を削除する をdf2に追加してください。
In [21]: df2.drop_duplicates(subset=['A']) # you can use take_last=True
Out[21]:
A C
0 1 5
In [22]: df.merge(df2.drop_duplicates(subset=['A']), how='left')
Out[22]:
A B C
0 1 3 5
1 2 4 NaN
関連
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] Pythonの要素別タプル演算(sumなど
-
[解決済み] あるオブジェクトが数であるかどうかを確認する、最もパイソン的な方法は何でしょうか?
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] Python Empty Generator 関数
-
[解決済み] PySparkでデータフレームのカラムをString型からDouble型に変更する方法は?
-
[解決済み] if 節の終了方法
-
[解決済み] Pythonの検索パスを他のソースに展開する
-
[解決済み] Pythonの文字列の前にあるbという接頭辞は何を意味するのですか?
-
[解決済み] Django filter queryset __in for *every* item in list
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SQLAlchemy: セッションの作成と再利用
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] pandasのDataFrameから空のセルを含む行を削除する
-
[解決済み] Django のテストデータベースをメモリ上だけで動作させるには?
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] サブフォルダからのインポートモジュール
-
[解決済み] Pandasのデータフレーム内の文字列を'date'データ型に変換するにはどうしたらいいですか?
-
[解決済み] PySparkでデータフレームのカラムをString型からDouble型に変更する方法は?
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法