パンダの高度な処理-マージ
データが複数のテーブルで構成されている場合、分析のために異なるコンテンツをマージする必要がある場合があります
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
:DataFrameright
:別のDataFrameon
:指定された共通キー- 方法:どのように接続するか
マージ方法 | 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-接続されたキーの基礎は何ですか