Python 尝试对两个数据集进行左连接,但得到奇怪的结果

Python 尝试对两个数据集进行左连接,但得到奇怪的结果,python,pandas,dataframe,Python,Pandas,Dataframe,为了尽可能清楚地说明这一点,我从一个简单的例子开始。我创建了两个随机数据帧 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',

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

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\u merge=pd.merge(df1,df2,on='id',how='outer')
df\u merge=df1.merge(df2,how='left',left\u on='id',right'u on='id')

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

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

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

这是否回答了您的问题?这里发生的是笛卡尔积,是由具有相同密钥的任一或两个数据帧中的多条记录引起的。执行groupby键和计数,然后按计数大于1的记录过滤结果,如果您的计数大于1,则我们将得到记录的倍数。@ScottBoston您能提供一个答案吗?@Snorlaxxx抱歉,我对你的问题没有答案。这只是一个建议,我认为是什么导致了你的问题。