[英]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.