Python日常(二) 資料篩選

2021-10-01 14:56:10 字數 3000 閱讀 8487

無論是在資料分析還是資料探勘的時候,資料篩選總會涉及到。這裡我總結了一下python中列表,字典,資料框中一些常用的資料篩選的方法。

案例一:從乙個含有數字0-9的列表中篩選出偶數(奇數):

enumerate方法(生成兩列資料,第一列是索引,第二列是數值)

num=

[i for i in

range(10

)]num1=

for index,count in

enumerate

(num)

:if count%2==

0:)print

(num1)

2.列表推導式(常用)

num=

[i for i in

range(10

)if i%2==

0]print

(num)

二者輸出結果都是[0,2,4,6,8],相比之下列表推導式要簡潔的多

案例二:從乙個包含學生姓名和成績的字典中,篩選出成績大於60的學生

首先,我們構造乙個字典inf:

name=

['bob'

,'jim'

,'gin'

,'angel'

] grade=[80

,55,75

,95] inf=

dict

(zip

(name,grade)

)print

(inf)

輸出結果為:

以下,我們可以通過字典推導式篩選出學生成績(大於60):

dict1=

print

(dict1)

輸出結果:

如果你只是想要返回成績大於60的學生名字或者分數的話,可以將dict1中的key:value部分改為key或者value即可.當然上述步驟是先建立乙個字典,然後再從字典裡篩選出符合特定條件的值。可不可以一步完成呢?

當然闊以~

dict2=

print

(dict2)

輸出結果也是.不過,這裡需要注意的是:如果列表name 和列表grade長度不一致的話,後面for迴圈中的len函式應該去長度較短的列表!

案例三:利用pandas從招聘資訊表中篩選出特定條件的資訊

首先,匯入資料

import pandas as pd

df=pd.read_excel(

'job_information.xls'

,encoding=

'utf-8'

) df

招聘資訊表如下:

a. 篩選出工作經驗(exp)為4年的招聘資訊

df[df[

'exp'

].isin([4])]

通用篩選方式:data[data[『篩選列』].isin([num])]

需要注意的是:isin函式裡篩選的num必須用括起來!可以是乙個,也可以是多個。但只能對特定的數字進行篩選,最後篩選的結果如下:

b. 篩選出具體給明的工資(salary)(過濾掉薪資面議)

df[df[

'salary'].

str.contains(

'k')

]

通用篩選方式:data[data[『篩選列』].str.contains(『特定字元』)]

需要注意的是:只能對特定的字串進行篩選,最後篩選結果如下:

c.篩選出只含有k的工資(過濾14薪等以及薪資面議)

df[

~df[

'salary'].

str.contains(

'薪')

]

因為這裡需要過濾的字元都出現了"薪",我們依舊可以使用contains函式。需要注意的是"~「代表"非」(在對於isin函式也有用!),即排除salary中包含"薪" 這個字元的所有資料。最後,篩選結果如下:

d.篩選出含有k的工資(包括14薪等)

def

select

(x):

pat=

'[0-9]?[0-9]k-[0-9]?[0-9]k'

rst=re.search(pat,x)

if rst:

return rst.group(0)

return

0df[

'salary'].

(select)

需要注意的是:在使用group函式的時候,需要先判斷是否可以先查到對應的值。否則會報錯(nonetype object has no attribute 『group』 )。最後篩選的結果如下:

此外,還有一些篩選資料的方法如pivot_table(資料透視表),filter函式+lambda函式等,這就需要大家在實際應用的時候靈活選擇。

以上就是本次分享的全部內容~

Python日常小練習(二)

用兩個字串,然後把它們連線到一起 name input 請輸入你想一起的那個人 country input 請輸入你想要去的那個國家 print 世界那麼大,我想要和 一起去 看看 format name,country 使用者輸入乙個整數n,計算從1到n的相加之後的結果 n int input 請...

python 特徵篩選

from sklearn.feature selection import variancethreshold,selectkbest,chi2 from sklearn.datasets import load iris import pandas as pd x,y load iris retu...

資料的篩選

excel2016中提供了3種資料的篩選操作,即 自動篩選 自定義篩選 和 高階篩選 自動篩選 自動篩選 一般用於簡單的條件篩選,篩選時將不滿足條件的資料暫時隱藏起來,只顯示符合條件的資料 對工作表中的資料進行自動篩選的具體步驟如下 指定資料的篩選 開啟工作表,選中單元格a2 l11,切換到 資料 ...