1. 程式人生 > 程式設計 >Pandas中兩個dataframe的交集和差集的示例程式碼

Pandas中兩個dataframe的交集和差集的示例程式碼

建立測試資料:

import pandas as pd
import numpy as np
 
#Create a DataFrame
df1 = {
  'Subject':['semester1','semester2','semester3','semester4','semester1','semester3'],'Score':[62,47,55,74,31,77,85]}
 
df2 = {
  'Subject':['semester1','semester4'],'Score':[90,85,74]}
 
 
df1 = pd.DataFrame(df1,columns=['Subject','Score'])
df2 = pd.DataFrame(df2,'Score'])
 
print(df1)
print(df2)

執行結果:

在這裡插入圖片描述

求兩個dataframe的交集

intersected_df = pd.merge(df1,df2,how='inner')
print(intersected_df)

在這裡插入圖片描述

也可以指定求交集的列:

intersected_df = pd.merge(df1,on=['Subject'],how='inner')
print(intersected_df)

在這裡插入圖片描述

求差集

df2-df1:

set_diff_df = pd.concat([df2,df1,df1]).drop_duplicates(keep=False)
print(set_diff_df)

在這裡插入圖片描述

df1-df2:

set_diff_df = pd.concat([df1,df2]).drop_duplicates(keep=False)
print(set_diff_df)

在這裡插入圖片描述

另一種求差集的方法是:

以df1-df2為例:

df1 = df1.append(df2)
df1 = df1.append(df2)
set_diff_df = df1.drop_duplicates(subset=['Subject','Score'],keep=False)
print(set_diff_df)

得到的df1-df2結果是一樣的:

在這裡插入圖片描述

到此這篇關於Pandas中兩個dataframe的交集和差集的示例程式碼的文章就介紹到這了,更多相關Pandas dataframe交集差集內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!