如何在不创建数据副本的情况下进行 pd.merge?

问题描述 投票:0回答:2

我正在尝试将两个数据框连接在一起,如下所示:

df3 = pd.merge(df1,df2, how='inner', on='key')

其中 df1 和 df2 是具有数百万行的大型数据集。基本上我如何加入它们而不必创建第三个数据框 df3。

我只是想将一个连接到下一个,改变原来的。我没有足够的内存在我的服务器上运行这么多,所以我需要更高效的东西。

python pandas bigdata
2个回答
0
投票

将参数方式更改为 left(本例中 left 将是 df1:

df1 = df1.merge(df2, on='key', how='left')


-3
投票

你可以试试这个。我不确定你的数据是什么样子,所以只是猜测。

import pandas as pd

def merge_dataset(df1, df2):
    df1 = df1.merge(df2, how='inner', on='key')
    print(df1)
    return df1

if __name__ == '__main__':

  d1 = {'col1': [1, 2], 'key': [3, 4]}
  d2 = {'col2': [5,6], 'key': [3, 4]}
  df1 = pd.DataFrame(data=d1)
  df2 = pd.DataFrame(data=d2)
  # Debug 
  print(df1)
  print(df2)
  merge_dataset(df1, df2)
© www.soinside.com 2019 - 2024. All rights reserved.