pandas去除DataFrame重複項

2021-10-06 23:30:26 字數 2767 閱讀 6130

dataframe中存在重複的行或者幾行中某幾列的值重複,這時候需要去掉重複行,示例如下:

def

set_data

(data, namelist, mode=

'all'):

''' 各種去重操作

:param data:待處理資料dataframe

:param mode:去重模式 all,select,drop,specially

:param namelist:可選的字段/要刪除的資料,list

:return: 去重後的資料dataframe

'''#1、完全去重mode='all'

if mode ==

'all'

: setdata = data.drop_duplicates(subset=

none

, keep=

'first'

, inplace=

false

)print

('重複資料{}條,剩餘{}條'

.format

(len

(data)

-len

(setdata)

,len

(setdata)))

#2、選字段去重mode='select'

if mode ==

'select'

: setdata = data.drop_duplicates(subset=namelist, keep=

'first'

, inplace=

false

)print

('重複資料{}條,剩餘{}條'

.format

(len

(data)

-len

(setdata)

,len

(setdata)))

#3、刪除欄位去重mode='drop'

if mode ==

'drop'

: setdata = data.drop(namelist, axis=1)

setdata = setdata.drop_duplicates(subset=

none

, keep=

'first'

, inplace=

false

)print

('重複資料{}條,剩餘{}條'

.format

(len

(data)

-len

(setdata)

,len

(setdata)))

#4、特定資料去重mode='specially'

if mode ==

'specially'

: droplist =

for i in

range

(len

(data)):

for j in

range

(len

(namelist)):

if data[

'a']

[i]== namelist[j][0

]and data[

'b']

[i]== namelist[j][1

]:break

setdata = data.drop(droplist, axis=0)

print

('重複資料{}條,剩餘{}條'

.format

(len

(data)

-len

(setdata)

,len

(setdata)))

setdata = setdata.reset_index(drop=

true

)return setdata

data=data.drop_duplicates(subset=

['a'

,'b'

],keep=

'first'

,inplace=

false

)

1、**中subset對應的值是列名,表示只考慮這幾列,將這幾列對應值相同的行進行去重。預設值為subset=none表示考慮所有列。

2、keep='first』表示保留第一次出現的重複行,是預設值。keep另外兩個取值為"last"和false,分別表示保留最後一次出現的重複行和去除所有重複行。

3、inplace=true表示直接在原來的dataframe上刪除重複項,而預設值false表示生成乙個副本,將副本賦值dataframe。

setdata = data.drop(

['a'

,'b'

], axis=1)

setdata = data.drop([1

,5], axis=

0)

1、dataframe上刪除某行/某列,axis=1為刪除某列,對應的為列名;axis=0為刪除某行,對應的index值。

注意事項

setdata = setdata.reset_index(drop=

true

)

對去重後的資料要重建索引,否則後續操作可能報

"in pandas._libs.hashtable.int64hashtable.get_item"這個錯誤。

Pandas統計分析基礎之DataFrame

3 更改dataframe中的資料 4 增加dataframe中的資料 刪除dataframe中的資料 dataframe類似於資料庫的表或者excel的 panda將資料讀取之後,以dataframe的資料結構儲存在記憶體中。下面就來介紹一下dataframe的增刪查改操作。因為dataframe...

pandas 去除重複行

方法 dataframe.drop duplicates subset none,keep first inplace false 1引數 這個drop duplicate方法是對dataframe格式的資料,去除特定列下面的重複行。返回dataframe格式的資料。subset column la...

Spark 解析XML檔案到DataFrame

公司遇到一點需求,平時load檔案基本上都是csv格式的檔案,可是就有那麼乙個檔案是xml檔案,這也正常,因為檔案是別的team推過來的,自然要遵循他們的格式,於是就要想辦法解析xml檔案。目標是把xml檔案轉換為dataframe,然後寫到表中。可是spark.reader並沒有讀取xml格式檔案...