前兩天處理數(shù)據(jù)的時(shí)候,需要得到兩個數(shù)據(jù)的交集數(shù)據(jù),所以要去除數(shù)據(jù)中非重復(fù)部分,只保留數(shù)據(jù)中的重復(fù)部分。
蓬萊ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
?? 網(wǎng)上看了一下大家的教程,大部分都是教去除重復(fù)行,很少有說到僅保留重復(fù)行的。所以在這里用drop_duplicates這個去重函數(shù)來實(shí)現(xiàn)這個功能。
drop_duplicates函數(shù)介紹 :
data.drop_duplicates(subset=[‘A’,‘B’],keep=‘first’,inplace=True)
#subset對應(yīng)的值是列名,表示只考慮這兩列,將這兩列對應(yīng)值相同的行進(jìn)行去重。
默認(rèn)值為subset=None表示考慮所有列。
keep='first’表示保留第一次出現(xiàn)的重復(fù)行,是默認(rèn)值。
keep另外兩個取值為"last"和False,分別表示保留最后一次出現(xiàn)的重復(fù)行和去除所有重復(fù)行。
inplace=True表示直接在原來的DataFrame上刪除重復(fù)項(xiàng),而默認(rèn)值False表示生成一個副本。
要用函數(shù)取得數(shù)據(jù)集data中的重復(fù)列,分三個步驟 :
(提前導(dǎo)入pandas模塊)
data0_1 = data.drop_duplicates() #保留第一個重復(fù)行
data0_2 = data.drop_duplicates(keep=False) #去除所有重復(fù)行
data0_3=pd.concat([data0_1,data0_2]).drop_duplicates(keep=False)
#合并起來再去重,只剩下真的重復(fù)行。
舉例:data中wangwu行和tony行重復(fù),需要把它們兩行取出。
第一步:#保留第一個重復(fù)行
第二步:#去除所有重復(fù)行
第三步:#合并起來再去重
通過以上步驟實(shí)現(xiàn)取出數(shù)據(jù)中的重復(fù)行。
DataFrame.drop( labels=None , axis=0 , index=None , columns=None , level=None , inplace=False , errors='raise' )
labels:指定行(或列) 的標(biāo)簽名
axis:'0'刪除行,'1'刪除列
inplace:是否替換原來的dataframe,默認(rèn)為'False'。'False':返回一個副本;'True':原dataframe直接被替換(內(nèi)存值修改)。
參考:
python進(jìn)行數(shù)據(jù)處理——pandas的drop函數(shù)
pandas.Dataframe.drop-pandas 1.3.5 documentation
題主你好,
你在新建DataFrame的時(shí)候已經(jīng)指定了行索引用a,b,c,d來表示,
所以你在刪除的時(shí)候,如果要使用index來指定要刪除的行,則要使用a,b,c,d其中一個, 如
df.drop('a',axis=0,inplace=True)
或者使用df.tail(1).index來表示倒數(shù)第1行:
df.drop(df.tail(1).index,axis=0,inplace=True)
-----
希望可以幫到題主, 歡迎追問.
drop()刪除行列的操作,drop函數(shù)的axis參數(shù)0和1分別代表列和行。
直接采用drop函數(shù)即可,設(shè)置參數(shù)axis=0. 參數(shù)axis為0表示在0軸(列)上搜索名字為C的對象,然后刪除對象C對應(yīng)的行。
用drop函數(shù)設(shè)置參數(shù)axis=1. 參數(shù)axis為1表示在1軸(行)上搜索名字為col2的對象,然后刪除對象col2對應(yīng)的列。