首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较两个数据帧并保留重叠的行

比较两个数据帧并保留重叠的行
EN

Stack Overflow用户
提问于 2020-10-24 23:06:10
回答 3查看 185关注 0票数 1

我有两个数据帧:一个只有一列(A),另一个有两列(B)。我想要比较数据帧A和数据帧B的列(A包含与B中的列相同类型的数据,并且一些行重叠)。然后,我希望保留数据帧B中重叠的行。

示例:

代码语言:javascript
复制
A = pd.DataFrame([['Smile1'], ['Smile4'], ['Smile6']], columns=['Smiles'])

B = pd.DataFrame([[24, 'Smile1'], [33, 'Smile2'], [2, 'Smile3'], 
[85, 'Smile4'], [68, 'Smile5'], [102, 'Smile6']], columns=['ID', 'Smiles'])

在本例中,我希望保留Smile1、4和6及其ID,最好创建一个包含这些列的新数据帧,如下所示:

C = pd.DataFrame([[24, 'Smile1'], [85, 'Smile4'], [102, 'Smile6']], columns=['ID', 'Smiles'])

我的实际数据帧要大得多。

谢谢您抽时间见我!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-10-24 23:11:47

代码语言:javascript
复制
B[B["Smiles"].isin(A["Smiles"])]

输出:

代码语言:javascript
复制
Out[8]: 
    ID  Smiles
0   24  Smile1
3   85  Smile4
5  102  Smile6
票数 2
EN

Stack Overflow用户

发布于 2020-10-24 23:11:55

检查:

代码语言:javascript
复制
C = B[B['Smiles'].isin(A['Smiles'])]
C
Out[73]: 
    ID  Smiles
0   24  Smile1
3   85  Smile4
5  102  Smile6
票数 0
EN

Stack Overflow用户

发布于 2020-10-24 23:52:21

您可以使用pd.DataFrame.merge

代码语言:javascript
复制
C = pd.merge(B, A, on=['Smiles'])
C
    ID  Smiles
0   24  Smile1
1   85  Smile4
2  102  Smile6

或者使用isinreset_index

代码语言:javascript
复制
C = B[B.Smiles.isin(A.Smiles)].reset_index(drop=True)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64514807

复制
相关文章

相似问题

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