日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

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

作者:元神の助手 ? 更新時間: 2022-10-24 編程語言

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)

差集函數的詳解:

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

?2、需要對dataframe中的一列值有重復的,應用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'表示保留第一次出現的重復行,是默認值。keep另外兩個取值為"last"和False,分別表示保留最后一次出現的重復行和去除所有重復行。

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

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

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

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

總結

原文鏈接:https://blog.csdn.net/guoyc439/article/details/124165334

欄目分類
最近更新