パンダの高度な処理-マージ

パンダの高度な処理-マージ


データが複数のテーブルで構成されている場合、分析のために異なるコンテンツをマージする必要がある場合があります

1pd.concatがデータマージを実現

  • pd.concat([data1、data2]、axis = 1)
    • 行または列に従って結合します。axis= 0は列インデックス、axis = 1は行インデックスです。

たとえば、処理したワンホットエンコーディングを元のデータとマージします

# 按照行索引进行
pd.concat([data, dummies], axis=1)

[これは前のブログ投稿からのデータです。]

2 pd.merge

  • pd.merge(left、right、how = 'inner'、on = None)
    • 2つのデータセットの共通のキーと値のペアに従って、または相互にマージするように指定できます
    • left:DataFrame
    • right:別のDataFrame
    • on:指定された共通キー
    • 方法:どのように接続するか
マージ方法 SQL結合名 説明
left LEFT OUTER JOIN 左フレームのキーのみを使用
right RIGHT OUTER JOIN 右フレームのキーのみを使用
outer FULL OUTER JOIN 両方のフレームのキーの和集合を使用する
inner INNER JOIN 両方のフレームのキーの共通部分を使用する

2.1pd.mergeマージ

left = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],
                        'key2': ['K0', 'K1', 'K0', 'K1'],
                        'A': ['A0', 'A1', 'A2', 'A3'],
                        'B': ['B0', 'B1', 'B2', 'B3']})

right = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],
                        'key2': ['K0', 'K0', 'K0', 'K0'],
                        'C': ['C0', 'C1', 'C2', 'C3'],
                        'D': ['D0', 'D1', 'D2', 'D3']})

# 默认内连接
result = pd.merge(left, right, on=['key1', 'key2'])

  • 左接続
result = pd.merge(left, right, how='left', on=['key1', 'key2'])

  • 正しい接続
result = pd.merge(left, right, how='right', on=['key1', 'key2'])

  • 外部リンク
result = pd.merge(left, right, how='outer', on=['key1', 'key2'])

3まとめ

  • pd.concat([data1、data2]、axis = **)
  • pd.merge(left、right、how =、on =)
    • 方法-接続方法
    • on-接続されたキーの基礎は何ですか

おすすめ

転載: blog.csdn.net/weixin_44799217/article/details/114195290