python刪除重復函數 python編寫程序刪除列表中的重復值

像Excel一樣使用Python(一)

在進行數據處理時,如果數據簡單,數量不多,excel是大家的首選。但是當數據眾多,類型復雜,需要靈活地顯示切片、進行索引、以及排序時,python會更加方便。借助python中的numpy和pandas庫,它能快速完成各種任務,包括數據的創建、檢查、清洗、預處理、提取、篩選、匯總、統計等。接下來幾篇文章,將以excel為參照,介紹python中數據的處理。

成都創新互聯公司于2013年成立,是專業互聯網技術服務公司,擁有項目做網站、成都網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元湖州做網站,已為上家服務,為湖州各地企業和個人服務,聯系電話:028-86922220

提到pandas,那就不得不提兩類重要的數據結構,Series和DataFrame,這兩類數據結構都是建立在numpy的數組array基礎上。與array相比,Series是一個一維的數據集,但是每個數據元素都帶有一個索引,有點類似于字典。而DataFrame在數組的基礎上,增加了行索引和列索引,類似于Series的字典,或者說是一個列表集。

所以在數據處理前,要安裝好numpy , pandas。接下來就看看如何完成一套完整的數據操作。

創建數據表的方法分兩種,分別是從外部導入數據,以及直接寫入數據。

在python中,也可外部導入xlsx格式文件,使用read_excel()函數:

import pandas as pd

from pandas import DataFrame,Series

data=DataFrame(pd.read_excel('c:/python27/test.xlsx'))

print data

輸出:

Gene Size Function

0 arx1 411 NaN

1 arx2 550 monooxygenase

2 arx3 405 aminotransferase

……

即:調用pandas中read_excel屬性,來讀取文件test.xlsx,并轉換成DataFrame格式,賦給變量data。在每一行后,自動分了一個索引值。除了excel,還支持以下格式文件的導入和寫入:

Python寫入的方法有很多,但還是不如excel方便。常用的例如使用相等長度的字典或numpy數組來創建:

data1 = DataFrame(

{'Gene':['arx1','arx2','arx3'],

'Size':[411,550,405],

'Func':[np.NaN,'monooxygenase','aminotransferase ']})

print data1

輸出

Func Gene Size

0 NaN arx1 411

1 monooxyg arx2 550

2 amino arx3 405

分配一個行索引后,自動排序并輸出。

在python中,可以使用info()函數查看整個數據的詳細信息。

print data.info()

輸出

RangeIndex: 7 entries, 0 to 6

Data columns (total 3 columns):

Gene 7 non-null object

Size 7 non-null int64

Function 5 non-null object

dtypes: int64(1), object(2)

memory usage: 240.0+ bytes

None

此外,還可以通過shape, column, index, values, dtypes等函數來查看數據維度、行列組成、所有的值、 數據類型:

print data1.shape

print data1.index

print data1.columns

print data1.dtypes

輸出

(3, 3)

RangeIndex(start=0, stop=3, step=1)

Index([u'Func', u'Gene', u'Size'], dtype='object')

Func object

Gene object

Size int64

dtype: object

在excel中可以按“F5”,在“定位條件”中選擇“空值”,選中后,輸入替換信息,再按“Ctrl+Enter”即可完成替換。

在python中,使用函數 isnull 和 notnull 來檢測數據丟失, 包含空值返回True,不包含則返回False。

pd.isnull(data1)

pd.notnull(data1)

也可以使用函數的實例方法,以及加入參數,對某一列進行檢查:

print data1['Func'].isnull()

輸出

Func Gene Size

0 True False False

1 False False False

2 False False False

再使用fillna對空值進行填充:

data.fillna(value=0)

#用0來填充空值

data['Size'].fillna(data1['Size'].mean())

#用data1中Size列的平均值來填充空值

data['Func']=data['Func'].map(str.strip)

#清理Func列中存在的空格

Excel中可以按“Ctrl+F”,可調出替換對話框,替換相應數據。

Python中,使用replace函數替換:

data['Func'].replace('monooxygenase', 'oxidase')

將Func列中的'monooxygenase'替換成'oxidase'。

Excel中,通過“數據-篩選-高級”可以選擇性地看某一列的唯一值。

Python中,使用unique函數查看:

print data['Func'].unique()

輸出

[nan u'monooxygenase' u'aminotransferase' u'methyltransferase']

Excel中,通過UPPER、LOWER、PROPER等函數來變成大寫、小寫、首字母大寫。

Python中也有同名函數:

data1['Gene'].str.lower()

Excel中可以通過“數據-刪除重復項”來去除重復值。

Python中,可以通過drop_duplicates函數刪除重復值:

print data['Func'].drop_duplicates()

輸出

0 NaN

1 monooxygenase

2 aminotransferase

3 methyltransferase

Name: Func, dtype: object

還可以設置“ keep=’last’ ”參數,后出現的被保留,先出現的被刪除:

print data['Func'].drop_duplicates(keep='last')

輸出

2 aminotransferase

3 methyltransferase

6 monooxygenase

8 NaN

Name: Func, dtype: object

內容參考:

Python For Data Analysis

藍鯨網站分析博客,作者藍鯨(王彥平)

python如何實現刪除某list中所有重復出現的元素

1. 使用內置函數set

lists = [1,1,2,3,4,6,6,2,2,9]

lists = list(set(lists))

先將列表轉換為集合,因為集合是不重復的,故直接刪除重復元素,而且輸出結果為排序后的

python如何有多個重復元素刪除其中一個?

如果你知道他的索引(index)

假設他的索引存在變量a中

列表名為list

list.pop(a)

當然,也可以用remove函數

但是,局限于只能刪第一個

比如:

a=[0,1,1,1,2,3,3]

a.remove(1)

print(a)

結果為:

[0, 1, 1, 2, 3, 3]

Python 清除重復值

from pandas import read_csv

df = read_csv('D://PDA//4.3//data.csv')

df

#找出行重復的位置

dIndex = df.duplicated()

#根據某些列,找出重復的位置

dIndex = df.duplicated('id')

dIndex = df.duplicated(['id', 'key'])

#根據返回值,把重復數據提取出來

df[dIndex]

id? key? ? ? ? ? value

4? 1251147? ? 品牌? ? ? ? ? Apple

5? 1251147? 商品名稱? 蘋果iPad mini 3

#直接刪除重復值

#默認根據所有的列,進行刪除

newDF = df.drop_duplicates()

#當然也可以指定某一列,進行重復值處理

newDF = df.drop_duplicates('id')

python之重復值(duplicated)

Duplicated函數功能:查找并顯示數據表中的重復值

這里需要注意的是:

drop_duplicates函數功能是:刪除數據表中的重復值,判斷標準和邏輯與duplicated函數一樣

python用drop_duplicates()函數保留數據集的重復行

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

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

drop_duplicates函數介紹 :

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

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

默認值為subset=None表示考慮所有列。

keep='first’表示保留第一次出現的重復行,是默認值。

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

inplace=True表示直接在原來的DataFrame上刪除重復項,而默認值False表示生成一個副本。

要用函數取得數據集data中的重復列,分三個步驟 :

(提前導入pandas模塊)

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

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

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

#合并起來再去重,只剩下真的重復行。

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

第一步:#保留第一個重復行

第二步:#去除所有重復行

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

通過以上步驟實現取出數據中的重復行。

網站標題:python刪除重復函數 python編寫程序刪除列表中的重復值
文章分享:http://m.kartarina.com/article12/hgpcgc.html

成都網站建設公司_創新互聯,為您提供服務器托管、軟件開發虛擬主機、網站設計網站排名外貿建站

廣告

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

成都做網站
主站蜘蛛池模板: 狠狠精品久久久无码中文字幕| 日韩精品人妻系列无码专区免费| 中文字幕av无码一二三区电影| 无码一区二区三区在线观看 | 亚洲欧洲免费无码| 无码Aⅴ在线观看| 中文无码喷潮在线播放| 亚洲综合无码一区二区三区| 国产又爽又黄无码无遮挡在线观看 | 亚洲av无码成人精品国产| H无码精品3D动漫在线观看| 精品久久久无码21p发布| 成人无码网WWW在线观看| 夫妻免费无码V看片| AAA级久久久精品无码片| 亚洲AV无码乱码国产麻豆穿越| 久久人妻无码一区二区| 色偷偷一区二区无码视频| 国产午夜鲁丝无码拍拍| AV无码精品一区二区三区宅噜噜| 午夜福利无码一区二区| 国产成人无码AV麻豆| 无码孕妇孕交在线观看| 国产精品视频一区二区三区无码| 粉嫩大学生无套内射无码卡视频 | 综合国产在线观看无码| 免费无遮挡无码视频网站| 无码丰满熟妇juliaann与黑人| 无码精品人妻一区二区三区免费看| 亚洲AV蜜桃永久无码精品| 精品无码国产一区二区三区51安| 亚洲av永久无码嘿嘿嘿| 婷婷四虎东京热无码群交双飞视频| 熟妇人妻中文字幕无码老熟妇| 国产成人精品无码一区二区 | 久久久久亚洲av无码专区| 无码国产69精品久久久久网站| 亚洲一区二区三区AV无码| 国产激情无码一区二区app| 亚洲爆乳无码一区二区三区| 亚洲AV日韩AV永久无码久久|