合并两个无重复的DFs

2024-04-25 23:50:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试合并两个数据帧并消除重复。你知道吗

这是DF#1:

import pandas as pd
data1 = {'id':['168'],'group_id':['360002136432'],'ticket_form_id':['360000159712']}
df1 = pd.DataFrame(data1)
print(df1)

这是DF#2

data2 = {'id':['362936613051','362936613051','362936613051'],'ticket_id':['168','168','168']}
df2 = pd.DataFrame(data2)
print(df2)

我正在尝试合并,或巩固,DF#1和DF#2,所以看起来像这样。你知道吗

id  group_id    ticket_form_id  ID
168 360002136432    360000159712    362936613051

这可能是DF#1.id和DF#2.id之间的某种内部连接(我认为),但我在合并的数据帧中不断得到一堆重复。如何消除合并数据帧中的重复。你知道吗

所以,对于ID=8,我期望看到362563740691,对于ID=10,我期望看到362563746711。你知道吗

enter image description here

相反,对于ID=8,我看到的是362785076491。你知道吗

enter image description here


Tags: 数据importformiddataframedfgroupticket
2条回答

您的df2确实有很多重复值。我不知道你是否需要保留冗余数据,如果你不需要,你可以删除重复的df2

df2.drop_duplicates(inplace = True)
print(df1.merge(df2, left_on = 'id', right_on = 'ticket_id'))

这将立即删除最终数据帧中的重复行。你知道吗

另一种可能是在合并后删除重复的行。你知道吗

df1 = df1.merge(df2, left_on = 'id', right_on = 'ticket_id', how = 'inner')                                                                                
df1.drop_duplicates(inplace = True)                                                                                                                        
print(df1) 

假设df2中的所有id/ticket\u id对都是重复的,如示例所示:

df_new=df1.merge(df2[~df2.duplicated()==1], left_on='id', right_on='ticket_id').drop('ticket_id', axis=1)

相关问题 更多 >

    热门问题