簡體   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