無論是在資料分析還是資料探勘的時候,資料篩選總會涉及到。這裡我總結了一下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,切換到 資料 ...