如何连接和更新pandas数据帧

时间:2016-09-13 14:37:44

标签: python pandas

我想连接数据框 df1 df2 并生成数据框 df

df1 = pd.DataFrame([
    {"id": 1, "a": 1, "b": 1},
    {"id": 2, "a": 2, "b": 2},
])

df2 = pd.DataFrame([
    {"id": 1, "a": 5, "b": 5},
    {"id": 3, "a": 6, "b": 6}
])

df = pd.DataFrame([
    {"id": 1, "a": 5, "b": 5},
    {"id": 2, "a": 2, "b": 2},
    {"id": 3, "a": 6, "b": 6}
])

可以看到,相同 id 的行已更新。

1 个答案:

答案 0 :(得分:1)

  1. 级联
  2. 删除重复项
  3. df1 = pd.DataFrame([
        {"id": 1, "a": 1, "b": 1},
        {"id": 2, "a": 2, "b": 2},
    ])
    
    df2 = pd.DataFrame([
        {"id": 1, "a": 5, "b": 5},
        {"id": 3, "a": 6, "b": 6}
    ])
    
    print (pd.concat([df1.set_index('id'),
                      df2.set_index('id')])
           .reset_index()
           .drop_duplicates(subset='id', keep='last')
           .set_index('id')
           .sort_index())
    

    输出:

        a  b
    id      
    1   5  5
    2   2  2
    3   6  6