首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并两个没有DFs的DFs

合并两个没有DFs的DFs
EN

Stack Overflow用户
提问于 2018-10-16 15:23:16
回答 2查看 319关注 0票数 0

我试图合并两个数据帧并消除欺骗。

以下是DF#1:

代码语言:javascript
复制
import pandas as pd
data1 = {'id':['168'],'group_id':['360002136432'],'ticket_form_id':['360000159712']}
df1 = pd.DataFrame(data1)
print(df1)

这是DF #2

代码语言:javascript
复制
data2 = {'id':['362936613051','362936613051','362936613051'],'ticket_id':['168','168','168']}
df2 = pd.DataFrame(data2)
print(df2)

我正在尝试合并或合并DF#1和DF#2,所以看起来如下。

代码语言:javascript
复制
id  group_id    ticket_form_id  ID
168 360002136432    360000159712    362936613051

这将是DF#1.id和DF#2.ticket_id之间的某种内部连接(我认为),但是在合并的数据框架中我总是得到一堆陷阱。如何消除合并数据帧中的欺骗。

因此,对于ID = 8,我希望看到362563740691,对于ID = 10,我希望看到362563746711。

相反,我看到ID = 8是362785076491。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-16 15:38:06

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

代码语言:javascript
复制
df2.drop_duplicates(inplace = True)
print(df1.merge(df2, left_on = 'id', right_on = 'ticket_id'))

这将立即删除最后数据rows中重复的行。

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

代码语言:javascript
复制
df1 = df1.merge(df2, left_on = 'id', right_on = 'ticket_id', how = 'inner')                                                                                
df1.drop_duplicates(inplace = True)                                                                                                                        
print(df1) 
票数 2
EN

Stack Overflow用户

发布于 2018-10-16 15:47:59

假设df2中的所有id/票证_id对都是重复的,如下例所示:

代码语言:javascript
复制
df_new=df1.merge(df2[~df2.duplicated()==1], left_on='id', right_on='ticket_id').drop('ticket_id', axis=1)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52838914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档