欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用Pandas求兩個dataframe差集的過程詳解

 更新時間:2022年08月29日 08:55:30   作者:元神の助手  
在Pandas中求差集沒有專門的函數(shù),處理辦法就是將兩個DataFrame追加合并,然后去重,下面這篇文章主要給大家介紹了關(guān)于利用Pandas求兩個dataframe差集的相關(guān)資料,需要的朋友可以參考下

1、交集

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

延伸(針對列求交集)intersected=pd.merge(df1,df2,on['name'],how='inner')

2、差集(df1-df2為例)

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

差集函數(shù)的詳解:

1、Pandas 通過 concat() 函數(shù)能夠輕松地將 Series 與 DataFrame 對象組合在一起,函數(shù)的語法格式如下: pd.concat(objs,axis=0,join='outer',join_axes=None,ignore_index=False)

 2、需要對dataframe中的一列值有重復(fù)的,應(yīng)用drop_duplicates解決了此問題。

比如:

ata={"a":[1,1,2,4,3,9],"b":[2,2,3,5,5,10],"c":[3,4,5,6,6,11],"d":[4,5,6,7,8,12]}
pd_data=pd.DataFrame(data=data)
print(pd_data)
t=pd_data.drop_duplicates(subset=['c','b'],keep='last',inplace=False)
print(t)

說明:

keep='first'表示保留第一次出現(xiàn)的重復(fù)行,是默認(rèn)值。keep另外兩個取值為"last"和False,分別表示保留最后一次出現(xiàn)的重復(fù)行和去除所有重復(fù)行。

inplace=True表示直接在原來的DataFrame上刪除重復(fù)項,而默認(rèn)值False表示生成一個副本。如果要生成新的DataFrame:,inplace=False

subset要去重的列。subset=['c','b'],表示行中的記錄:c和b列都重復(fù)的。

3、將concat和drop_duplicates結(jié)合起來就解決了求差集的問題。

另外,還有一種方法也可以達(dá)到同樣的目的:

總結(jié)

到此這篇關(guān)于利用Pandas求兩個dataframe差集的文章就介紹到這了,更多相關(guān)Pandas求dataframe差集內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論