首页 > 解决方案 > 尝试对两个数据集进行左连接但得到奇怪的结果

问题描述

为了尽可能清楚地说明这一点,我从一个简单的例子开始。我创建了两个随机数据框

dummy_data1 = {
        'id': ['1', '2', '3', '4', '5'],
        'Feature1': ['A', 'C', 'E', 'G', 'I'],
        'Feature2': ['B', 'D', 'F', 'H', 'J']}
df1 = pd.DataFrame(dummy_data1, columns = ['id', 'Feature1', 'Feature2'])
dummy_data2 = {
        'id': ['1', '2', '6', '7', '8'],
        'Feature3': ['K', 'M', 'O', 'Q', 'S'],
        'Feature4': ['L', 'N', 'P', 'R', 'T']}
df2 = pd.DataFrame(dummy_data2, columns = ['id', 'Feature3', 'Feature4'])

如果我应用这个df_merge = pd.merge(df1, df2, on = 'id', how='outer')或者df_merge = df1.merge(df2,how='left', left_on='id', right_on='id')我得到想要的输出

在此处输入图像描述

现在,我尝试将相同的技术应用于两个具有相同行数的大型数据集。我想要做的就是将这些列连接到一个大数据框中。每个数据帧的长度是512573但是当我申请时

df_merge = orig_data_updated.merge(demographic_data1,how='left', left_on='Location+Type', right_on='Location+Type')

然后长度神奇地变成3596301了这根本不可能。我的问题很简单。如何在两个数据帧上进行左连接,以使行数相同,而我只是将列连接在一起?

标签: pythonpandasdataframe

解决方案


推荐阅读