繁体   English   中英

python - 如何 select 两个数据帧之间的差异和它的不同列

[英]python - how to select difference between two dataframes and it's different column

我有两个数据框,df2 是更多列

如果df1中的行在df2中没有,我select它到df3

df1

    id  colA colB
0   1   4    1
1   2   5    2
2   3   2    4
3   4   4    2
4   5   2    4

df2

    id  colA colB colC
0   1   4    1    0
1   2   5    2    0
2   5   2    4    0

我想要 select 来自 df1 的一些行

df3

    id  colA colB
0   3   2    4
1   4   4    2

假设您在'id'列上进行比较(如果没有,请澄清),您可以将Series.isin与 boolean 索引一起使用。

>>> df3 = df1[~df1['id'].isin(df2['id'])]
>>> df3
   id  colA  colB
2   3     2     4
3   4     4     2

使用drop_duplicates

import pandas as pd

df1 = pd.DataFrame({'id': [1,2,3,4,5],
                    'colA':[4,5,2,4,2],
                    'colB':[1,2,4,2,4]})

df2 = pd.DataFrame({'id': [1,2,5],
                    'colA':[4,5,2],
                    'colB':[1,2,4])

pd.concat([df1,df2]).drop_duplicates(subset='id',keep=False)

Output:

   id    colA   colB
2   3    2     4
3   4    4     2
df3 = df1.loc[~df1['id'].isin(list(df2['id']))]

Output:

   id  colA  colB
2   3     2     4
3   4     4     2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM