【问题标题】:Replace one Dataframe with Values from another but persisting some data in the original用另一个数据框的值替换一个数据框,但在原始数据中保留一些数据
【发布时间】:2017-10-19 20:09:47
【问题描述】:

我有两个这样的数据框

  DF1 

  name        age    surname   previous_surname 
  Andrese     20     William   William
  Jancy       25     Thomas    Thomas
  Andronella  22     Harry     Harry
  Amelia      21     Jack      Jack

  DF2

  name        age    surname   
  Andrese     20     Harrison   
  Jancy       25     James   
  Jessica     22     Litpick
  Amelia      21     -
  1. 我想在姓名和年龄上将 DF1 替换为 DF2
  2. 我想保留 DF2 中缺失但出现在 DF1 上的所有记录
  3. 我想将 DF1 不包含但包含在 DF2 中的任何内容添加到 DF1。基本上我想要一个看起来像这样的全包 DF。

      name        age    surname   previous_surname 
      Andrese     20     Harrison   William
      Jancy       25     James      Thomas
      Andronella  22     Harry      Harry
      Amelia      21     Jack       Jack
      Jessica     22     Litpick    - 
    

【问题讨论】:

    标签: python pandas numpy


    【解决方案1】:

    你需要与 combine_first 合并

    df =pd.merge(df1,df2, on=['name', 'age'], how = 'outer').replace({'-': np.nan})
    df['surname']=df['surname_y'].combine_first(df['surname_x'])
    df = df.drop(['surname_x', 'surname_y'], axis = 1)
    
        name        age previous_surname    surname
    0   Andrese     20  William             Harrison
    1   Jancy       25  Thomas              James
    2   Andronella  22  Harry               Harry
    3   Amelia      21  Jack                Jack
    4   Jessica     22  NaN                 Litpick
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-18
      • 1970-01-01
      • 2019-05-09
      • 2019-06-30
      • 1970-01-01
      相关资源
      最近更新 更多