真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python文件去重函數(shù) python字符串去重的方法

python去重(漢字一樣,里面的編碼不一樣)?

這是一個(gè)字符串的全角和半角的問(wèn)題,可以導(dǎo)入?unicodedata?中的?normalize?函數(shù)先把全角轉(zhuǎn)換為半角,然后再用?set?對(duì)列表去重,參考代碼如下:

10余年的呼圖壁網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整呼圖壁建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“呼圖壁網(wǎng)站設(shè)計(jì)”,“呼圖壁網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

from?unicodedata?import?normalize

list3=['熱菜','凉菜','涼菜','硬菜']

set(map(lambda?s:?normalize('NFKC',?s),?list3))

輸出:

{'硬菜',?'熱菜',?'涼菜'}

擴(kuò)展:

“?NFKC”代表“Normalization?Form?KC?[Compatibility?Decomposition,?followed?by?Canonical?Composition]”,并將全角字符替換為半角字符,這些半角字符與Unicode等價(jià)。

python用drop_duplicates()函數(shù)保留數(shù)據(jù)集的重復(fù)行

前兩天處理數(shù)據(jù)的時(shí)候,需要得到兩個(gè)數(shù)據(jù)的交集數(shù)據(jù),所以要去除數(shù)據(jù)中非重復(fù)部分,只保留數(shù)據(jù)中的重復(fù)部分。

?? 網(wǎng)上看了一下大家的教程,大部分都是教去除重復(fù)行,很少有說(shuō)到僅保留重復(fù)行的。所以在這里用drop_duplicates這個(gè)去重函數(shù)來(lái)實(shí)現(xiàn)這個(gè)功能。

drop_duplicates函數(shù)介紹 :

data.drop_duplicates(subset=[‘A’,‘B’],keep=‘first’,inplace=True)

#subset對(duì)應(yīng)的值是列名,表示只考慮這兩列,將這兩列對(duì)應(yīng)值相同的行進(jìn)行去重。

默認(rèn)值為subset=None表示考慮所有列。

keep='first’表示保留第一次出現(xiàn)的重復(fù)行,是默認(rèn)值。

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

inplace=True表示直接在原來(lái)的DataFrame上刪除重復(fù)項(xiàng),而默認(rèn)值False表示生成一個(gè)副本。

要用函數(shù)取得數(shù)據(jù)集data中的重復(fù)列,分三個(gè)步驟 :

(提前導(dǎo)入pandas模塊)

data0_1 = data.drop_duplicates() #保留第一個(gè)重復(fù)行

data0_2 = data.drop_duplicates(keep=False) #去除所有重復(fù)行

data0_3=pd.concat([data0_1,data0_2]).drop_duplicates(keep=False)

#合并起來(lái)再去重,只剩下真的重復(fù)行。

舉例:data中wangwu行和tony行重復(fù),需要把它們兩行取出。

第一步:#保留第一個(gè)重復(fù)行

第二步:#去除所有重復(fù)行

第三步:#合并起來(lái)再去重

通過(guò)以上步驟實(shí)現(xiàn)取出數(shù)據(jù)中的重復(fù)行。

Python常用的幾種去重方法

case1:用集合的特性set(),去重后順序會(huì)改變

case1.1:可以通過(guò)列表中索引(index)的方法保證去重后的順序不變

case2:使用循環(huán)查找的方式,不改變順序

case3:通過(guò)刪除索引

case4:itertools.groupby

case5:fromkeys

case6:reduce方法

Python 去重,統(tǒng)計(jì),lambda函數(shù)

df.drop_duplicates('item_name')

方法一:

df.drop_duplicates('item_name').count()

方法二:

df['item_name'].nunique()

結(jié)果:50

附:nunique()和unique()的區(qū)別:

unique()是以 數(shù)組形式(numpy.ndarray)返回列的所有唯一值(特征的所有唯一值)

nunique()即返回的是唯一值的個(gè)數(shù)

比如:df['item_name'].unique()

要求:將下表中經(jīng)驗(yàn)列將按周統(tǒng)計(jì)的轉(zhuǎn)換為經(jīng)驗(yàn)不限,保留學(xué)歷

df1['經(jīng)驗(yàn)'] = df1['經(jīng)驗(yàn)'].apply(lambda x: '經(jīng)驗(yàn)不限'+ x[-2:] if '周' in x else x)

#解釋:將‘5天/周6個(gè)月’變成‘經(jīng)驗(yàn)不限’,然后保留學(xué)歷‘本科’

方法二:定義函數(shù)

def dataInterval(ss):

if '周' in ss:

? ? return '經(jīng)驗(yàn)不限'+ ss[-2:]

return ss

df1['經(jīng)驗(yàn)'] = df1['經(jīng)驗(yàn)'].apply(dataInterval)

python中對(duì)list去重的多種方法

python中對(duì)list去重的多種方法

今天遇到一個(gè)問(wèn)題,在同事隨意的提示下,用了 itertools.groupby 這個(gè)函數(shù)。不過(guò)這個(gè)東西最終還是沒(méi)用上。

問(wèn)題就是對(duì)一個(gè)list中的新聞id進(jìn)行去重,去重之后要保證順序不變。

直觀方法

最簡(jiǎn)單的思路就是:

這樣也可行,但是看起來(lái)不夠爽。

用set

另外一個(gè)解決方案就是用set:

代碼如下:

ids = [1,4,3,3,4,2,3,4,5,6,1]

ids = list(set(ids))

這樣的結(jié)果是沒(méi)有保持原來(lái)的順序。

按照索引再次排序

最后通過(guò)這種方式解決:

代碼如下:

ids = [1,4,3,3,4,2,3,4,5,6,1]

news_ids = list(set(ids))

news_ids.sort(ids.index)

使用itertools.grouby

文章一開始就提到itertools.grouby, 如果不考慮列表順序的話可用這個(gè):

代碼如下:

ids = [1,4,3,3,4,2,3,4,5,6,1]

ids.sort()

it = itertools.groupby(ids)

for k, g in it:

print k

關(guān)于itertools.groupby的原理可以看這里:

網(wǎng)友補(bǔ)充:用reduce

網(wǎng)友reatlk留言給了另外的解決方案。我補(bǔ)充并解釋到這里:

代碼如下:

In [5]: ids = [1,4,3,3,4,2,3,4,5,6,1]

In [6]: func = lambda x,y:x if y in x else x + [y]

In [7]: reduce(func, [[], ] + ids)

Out[7]: [1, 4, 3, 2, 5, 6]

上面是我在ipython中運(yùn)行的代碼,其中的 lambda x,y:x if y in x else x + [y] 等價(jià)于 lambda x,y: y in x and x or x+[y] 。

python刪除重復(fù)數(shù)據(jù)

利用集合的不重復(fù)屬性,可以先轉(zhuǎn)換至集合,再用list()函數(shù)轉(zhuǎn)換回來(lái)即可。

比如,a是一個(gè)列表,a=list(set(a)),即可完成列表去重。


網(wǎng)站欄目:python文件去重函數(shù) python字符串去重的方法
當(dāng)前網(wǎng)址:http://weahome.cn/article/hjgphe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部