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

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

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

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

from?unicodedata?import?normalize

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

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

輸出:

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

擴展:

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

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

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

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

drop_duplicates函數(shù)介紹 :

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

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

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

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

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

inplace=True表示直接在原來的DataFrame上刪除重復(fù)項,而默認(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ù)行

第三步:#合并起來再去重

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

Python常用的幾種去重方法

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

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

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

case3:通過刪除索引

case4:itertools.groupby

case5:fromkeys

case6:reduce方法

Python 去重,統(tǒng)計,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()即返回的是唯一值的個數(shù)

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

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

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

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

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

def dataInterval(ss):

if '周' in ss:

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

return ss

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

python中對list去重的多種方法

python中對list去重的多種方法

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

問題就是對一個list中的新聞id進行去重,去重之后要保證順序不變。

直觀方法

最簡單的思路就是:

這樣也可行,但是看起來不夠爽。

用set

另外一個解決方案就是用set:

代碼如下:

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

ids = list(set(ids))

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

按照索引再次排序

最后通過這種方式解決:

代碼如下:

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, 如果不考慮列表順序的話可用這個:

代碼如下:

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)友補充:用reduce

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

代碼如下:

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中運行的代碼,其中的 lambda x,y:x if y in x else x + [y] 等價于 lambda x,y: y in x and x or x+[y] 。

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

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

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

網(wǎng)頁名稱:python文件去重函數(shù) python字符串去重的方法
瀏覽路徑:http://m.kartarina.com/article44/hjgphe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站外貿(mào)建站網(wǎng)站策劃用戶體驗、企業(yè)建站、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司
主站蜘蛛池模板: 国产av无码专区亚洲av果冻传媒 | 99无码精品二区在线视频| 少妇仑乱A毛片无码| 久久亚洲AV成人无码国产| 69ZXX少妇内射无码| 久久久久亚洲av无码专区喷水| 久久精品国产亚洲AV无码娇色| 无码国模国产在线观看免费| 蜜桃成人无码区免费视频网站| 国产成人无码AV麻豆| 国产AⅤ无码专区亚洲AV| 亚洲av中文无码字幕色不卡| 久久水蜜桃亚洲av无码精品麻豆 | 亚洲色av性色在线观无码| 中文字幕无码毛片免费看| 日韩人妻无码免费视频一区二区三区 | 国产精品无码久久四虎| 中日韩亚洲人成无码网站| 日韩精品无码AV成人观看| 亚洲av无码片在线播放| 亚洲日韩v无码中文字幕| 中文字幕在线无码一区| 亚洲AV无码专区国产乱码不卡 | 高清无码视频直接看| 日韩AV片无码一区二区不卡| 一区二区无码免费视频网站| 国产成人精品无码免费看 | 精品无码人妻夜人多侵犯18 | 中文字字幕在线中文无码| 久久精品无码中文字幕| 中字无码av电影在线观看网站| 亚洲AV日韩AV高潮无码专区| 无码中文字幕乱在线观看| 丰满少妇人妻无码| 中文字幕无码不卡在线| 亚洲伊人成无码综合网| 日韩精品无码一区二区中文字幕 | 少妇人妻无码专区视频| 国产av永久无码天堂影院| 国产AV无码专区亚洲AV漫画| 亚洲中文字幕无码一久久区|