iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0
自我挑戰組

我與熊貓Pandas相處的日子系列 第 9

Day9- 資料探索(2)重覆資料

  • 分享至 

  • xImage
  •  

重複資料在資料清理的過程中,可以說是最常見的問題之一,使用Pandas套件,透過duplicated()方法查找資料集的重複資料後,再利用drop_duplicates()方法刪除。

刪除重覆資料

df.drop_duplicates(keep刪除型態,ignore_index=布林值)

keep-「first」保留第一個重覆資料(預設)、「last」保留最後一筆重覆資料、「False」不保留,刪除全部重覆資料。
ignore_index-刪除後是否建立新的索引值。True表示重新建立索引,預設則為False表示不建立。

import pandas as pd
data = [[8,7,6,5,8], [3,4,2,9,3], [8,7,6,5,8], [6,None,4,None,6], [2,7,6,3,2]]
df=pd.DataFrame(data, index=['小明','小美','小明','小玉','小翔'], columns=['蘋果','芭樂','香蕉','橘子','蘋果'])
print(df)

    蘋果   芭樂  香蕉   橘子  蘋果
小明   8  7.0   6  5.0   8
小美   3  4.0   2  9.0   3
小明   8  7.0   6  5.0   8
小玉   6  NaN   4  NaN   6
小翔   2  7.0   6  3.0   2

查詢那一列為重覆值

df.duplicated()

小明    False
小美    False
小明     True
小玉    False
小翔    False
dtype: bool

完全重覆的列被刪除了,保留重複資料的第一筆。

df.drop_duplicates()

	蘋果	芭樂	香蕉	橘子	蘋果
小明	8	7.0	6	5.0	8
小美	3	4.0	2	9.0	3
小玉	6	NaN	4	NaN	6
小翔	2	7.0	6	3.0	2

針對某一列欄位把重覆的列刪除了,保留重複資料的第一筆。

df.drop_duplicates(['蘋果'])


	蘋果	芭樂	香蕉	橘子	蘋果
小明	8	7.0	6	5.0	8
小美	3	4.0	2	9.0	3
小玉	6	NaN	4	NaN	6
小翔	2	7.0	6	3.0	2
df.drop_duplicates(subset=["蘋果"],keep="last")

預設keep="first",可以改成"last"來保留重複的最後一筆資料。
重複的值都去掉,則是把keep設為False。

df.drop_duplicates(subset='蘋果', keep='first', inplace=True)
print(df)

  蘋果   芭樂  香蕉   橘子  蘋果
小明   8  7.0   6  5.0   8
小美   3  4.0   2  9.0   3
小玉   6  NaN   4  NaN   6
小翔   2  7.0   6  3.0   2

inplace關鍵字參數代表直接從現有資料集中刪除重複資料。
要刪除特定欄位重複的資料,同樣可以透過subset及keep關鍵字參數來達成。

明天再繼續來探索囉~ /images/emoticon/emoticon13.gif


上一篇
Day8- 資料探索(1)資料查看
下一篇
Day10- 資料探索(3)資料篩選
系列文
我與熊貓Pandas相處的日子30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言