日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

重复值处理 - 清洗 DataFrame 中的各种重复类型 - Python代码

發(fā)布時間:2024/7/5 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 重复值处理 - 清洗 DataFrame 中的各种重复类型 - Python代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

所有列是否完全重復(fù)

指定某一列是否重復(fù)

根據(jù)多列判斷是否重復(fù),防止誤刪數(shù)據(jù)

其他數(shù)據(jù)預(yù)處理方法


通過八爪魚或者火車頭等采集器從全網(wǎng)抓取的數(shù)據(jù)中,總會存在各種各樣的重復(fù)數(shù)據(jù),為保證數(shù)據(jù)在使用過程中的準(zhǔn)確性,總要先進(jìn)行一番清洗。

所有列是否完全重復(fù)

在Pandas中,.duplicated()表示找出重復(fù)的行,默認(rèn)是判斷全部列,返回布爾類型的結(jié)果。對于完全沒有重復(fù)的行,返回 False,對于有重復(fù)的行,第一次出現(xiàn)的那一行返回 False,其余的返回 True。

與.duplicated()對應(yīng)的,.drop_duplicates()表示去重,即刪除布爾類型為 True的所有行,默認(rèn)是判斷全部列。

import pandas as pd import numpy as np from pandas import DataFrame,Series#讀取文件 datafile = u'E:\\pythondata\\tt.xlsx'#文件所在位置,u為防止路徑中有中文名稱,此處沒有,可以省略 data = pd.read_excel(datafile)#datafile是excel文件,所以用read_excel,如果是csv文件則用read_csv examDf = DataFrame(data) examDf#輸出源數(shù)據(jù),直觀的查看哪些行是重復(fù)的

運(yùn)行結(jié)果:?

nameheightbirthdayconstellationBlood0123456
Jay1751979摩羯座O
Jay1751979摩羯座O
Jolin1561980處女座A
Jolin1561980NaNA
Hannah1651993獅子座B
JJ1731981白羊座O
Eason1731974獅子座O

很明顯,第 0 行和第 1 行是完全重復(fù)的,開始去重,接著上面的代碼,

#去重 print(examDf.duplicated())#判斷是否有重復(fù)行,重復(fù)的顯示為TRUE, examDf.drop_duplicates()#去掉重復(fù)行

指定某一列是否重復(fù)

上述的數(shù)據(jù)中我們可以發(fā)現(xiàn),第 2 行和第 3 行其實(shí)都是?Jolin 的信息,那么也是需要去重的。.duplicated()默認(rèn)是判斷全部列,那么加一點(diǎn)東西,就可以判斷指定某一列了。

print(examDf.duplicated('name'))#判斷name列是否有重復(fù)行,重復(fù)的顯示為TRUE, examDf.drop_duplicates('name')#去掉重復(fù)行

運(yùn)行結(jié)果:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

在實(shí)際應(yīng)用中,需要指定的這一列往往是合同號,項(xiàng)目編號這一類的

根據(jù)多列判斷是否重復(fù),防止誤刪數(shù)據(jù)

僅僅根據(jù)name列判斷是否重復(fù),難免會把重名的另一個人的信息誤刪,比如娛樂圈的楊洋(小鮮肉男)和楊洋(快女),僅根據(jù)name判斷是否重復(fù)的話,肯定會將其中一人的信息判斷為重復(fù)數(shù)據(jù),那么就增加幾個判斷條件,比如根據(jù)姓名,性別,生日三個條件來判斷的話,誤刪的幾率就會大大的減少。

import pandas as pd import numpy as np from pandas import DataFrame,Series#讀取文件 datafile = u'E:\\pythondata\\tt.xlsx'#文件所在位置,u為防止路徑中有中文名稱,此處沒有,可以省略 data = pd.read_excel(datafile)#datafile是excel文件,所以用read_excel,如果是csv文件則用read_csv examDf = DataFrame(data) print(examDf.duplicated(['name','sex','birthday']))#判斷name,sex,birthday列是否有重復(fù)行,重復(fù)的顯示為TRUE, examDf.drop_duplicates(['name','sex','birthday'])#去掉重復(fù)行

運(yùn)行結(jié)果:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

望指正!

其他數(shù)據(jù)預(yù)處理方法

拉格朗日插值法補(bǔ)充缺失值

連續(xù)數(shù)據(jù)離散化(等寬、等頻、聚類離散)

數(shù)據(jù)預(yù)處理 - 歸一化與標(biāo)準(zhǔn)化

總結(jié)

以上是生活随笔為你收集整理的重复值处理 - 清洗 DataFrame 中的各种重复类型 - Python代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。