我有两个数据帧:一个只有一列(A),另一个有两列(B)。我想要比较数据帧A和数据帧B的列(A包含与B中的列相同类型的数据,并且一些行重叠)。然后,我希望保留数据帧B中重叠的行。
示例:
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'])
我的实际数据帧要大得多。
谢谢您抽时间见我!
发布于 2020-10-24 23:11:47
B[B["Smiles"].isin(A["Smiles"])]输出:
Out[8]:
ID Smiles
0 24 Smile1
3 85 Smile4
5 102 Smile6发布于 2020-10-24 23:11:55
检查:
C = B[B['Smiles'].isin(A['Smiles'])]
C
Out[73]:
ID Smiles
0 24 Smile1
3 85 Smile4
5 102 Smile6发布于 2020-10-24 23:52:21
您可以使用pd.DataFrame.merge
C = pd.merge(B, A, on=['Smiles'])
C
ID Smiles
0 24 Smile1
1 85 Smile4
2 102 Smile6或者使用isin和reset_index
C = B[B.Smiles.isin(A.Smiles)].reset_index(drop=True)https://stackoverflow.com/questions/64514807
复制相似问题