代码之家  ›  专栏  ›  技术社区  ›  Sreeram TP

仅将新值从一个数据帧追加到另一个数据帧

  •  -2
  • Sreeram TP  · 技术社区  · 7 年前

    我有一个非常大的数据框。我还有一个小数据框。

    小数据帧将包含一些已经存在于大数据帧中的行。我想把小数据帧附加到大数据帧上,这样大数据帧中就不会有重复的数据了。

    我可以简单地附加,然后删除重复项。但这将导致内存的浪费,从而将复制的数据帧保留在内存中。

    有没有其他方法可以有效地解决这个问题。?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Raunaq Jain    7 年前

    数据 :

    df1 = pd.DataFrame({'a': [1,2,3,4,5,6,7]})
    df2 = pd.DataFrame({'a': [3,8,4,9]})
    

    df3 = df2.merge(df1, how='left', indicator=True)
    
        a     _merge
    0   3       both
    1   8  left_only
    2   4       both
    3   9  left_only
    

    现在,选择具有 'left_only' ,

    df3 =df3[df3._merge == 'left_only'].iloc[:,:-1]
    

    最后,附加它们。

    df1 = pd.concat([df1, df3], ignore_index=True)
    
        2
  •  3
  •   Anna Iliukovich-Strakovskaia    7 年前

    那怎么办 伊辛 ?

    df1 = pd.DataFrame({'a': [1,2,3,4,5,6,7]})
    df2 = pd.DataFrame({'a': [3,4,9]})
    

    代码:

    df1.append(df2[df2.isin(df1) == False])
    

    输出:

       a
    0  1
    1  2
    2  3
    3  4
    4  5
    5  6
    6  7
    0  3
    1  4
    2  9