Loading

Pandas-06-数据合并

1. pd.concat实现数据合并

  • pd.concat([data1, data2], axis=1)

    • 按照行或列进行合并,axis=0为列索引,axis=1为行索引

    比如将刚才处理好的one-hot编码与原数据合并

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

    image-20210313200004169

2. pd.merge

  • pd.merge(left, right, how='inner', on=None)

    • 可以指定按照两组共同的数据的共同键值对合并或者左右各自
    • left:DataFrame
    • right:另一个DataFrame
    • on:指定的共同键
    • how:按照什么方式进行连接
    Merge method SQL Jion Name Description
    left LEFT OUTER JION 左连接
    right RIGHT OUTER JION 右连接
    inner INNER JION 内连接
    outer FULL OUTER JION 外连接
    left = pd.DataFrame({
        "A": ["A0", "A1", "A2", "A3"],
        "B": ["B0", "B1", "B2", "B3"],
        "key1": ["K0", "K0", "K1", "K2"],
        "key2": ["K0", "K1", "K0", "K1"]
    })
    right = pd.DataFrame({
        "C": ["C0", "C1", "C2", "C3"],
        "D": ["D0", "D1", "D2", "D3"],
        "key1": ["K0", "K1", "K1", "K2"],
        "key2": ["K0", "K0", "K0", "K0"]
    })
    
  • 默认为内连接:

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

    image-20210313203441190

  • 左连接

    # 左连接
    result = pd.merge(left, right, how="left", on=["key1", "key2"])
    

    image-20210313203723482

  • 右连接

    # 右连接
    result = pd.merge(left, right, how="right", on=["key1", "key2"])
    

    image-20210313203845121

  • 外连接

    # 外连接
    result = pd.merge(left, right, how="outer", on=["key1", "key2"])
    

    image-20210313204004267

3. 总结

  • pd.concat(["数据1", "数据2"], axis=)
  • pd.merge(left, right, how=, on=)
    • how -- 以何种方式连接
    • on -- 连接的键的依据是哪些
posted @ 2021-05-02 15:00  七年i  阅读(93)  评论(0)    收藏  举报