Pandas篩選某列過(guò)濾的方法
通過(guò)dataframe的第二個(gè)條件,進(jìn)行篩選
#make字段異常值清洗 new = data[['make', 'model', 'instance_id']] new['make_model'] = new['make']+':::'+new['model'] new.head(3)

# new.make_model.value_counts()
# 統(tǒng)計(jì)make_model列屬性值出現(xiàn)的次數(shù)
new.make_model.value_counts()[new.make_model.value_counts() <= 200]
"""
OPPO:::OPPO+A59st 200
OPPO:::3007 200
Xiaomi:::Redmi%20Note%203 200
Meizu:::MEIZU-M6 199
samsung:::SM-N9006 199
...
OPPO,OPPO A53,A53:::OPPO A53 1
boway U15:::boway U15 1
BaiMao:::BM I8 1
vivo:::vivoy75a 1
SUPERJO:::SUPERJO 1
Name: make_model, Length: 15597, dtype: int64
"""找出符合第二列篩選條件的index(這里index不是0-n,而是剛才value_counts()的index)
(new.make_model.value_counts()[new.make_model.value_counts() <= 200]).index
"""
Index(['OPPO:::OPPO+A59st', 'OPPO:::3007', 'Xiaomi:::Redmi%20Note%203',
'Meizu:::MEIZU-M6', 'samsung:::SM-N9006', 'Coolpad:::MTS-T0',
'OPPO R11st:::OPPO R11st', 'Blephone:::lephone T7A', 'GIONEE:::GN9011',
'Meizu:::PRO 7-S',
...
'HUAWEI:::HUAWEI%25252BG7-UL20', 'VOLTE:::L3', 'GIONEE:::GN868',
'alps:::SOP-i9', 'GT-I9300I:::GT-I9300I',
'OPPO,OPPO A53,A53:::OPPO A53', 'boway U15:::boway U15',
'BaiMao:::BM I8', 'vivo:::vivoy75a', 'SUPERJO:::SUPERJO'],
dtype='object', length=15597)
"""
new.make_model
"""
0 HUAWEI:::HUAWEI-CAZ-AL10
1 Xiaomi:::Redmi Note 4
2 OPPO:::OPPO+R11s
3 NaN
4 Apple:::iPhone 7
...
1041669 OPPO:::OPPO-R9s
1041670 Xiaomi:::MI-5X
1041671 vivo:::vivo Y37
1041672 vivo:::vivo%20Y75A
1041673 OPPO:::A31
Name: make_model, Length: 1041674, dtype: object
"""dataframe.loc(行索引, 列名)
# 在make_model列, # 定位符合 new.make_model.isin((new.make_model.value_counts()[new.make_model.value_counts() <= 200]).index) 的行 # new.loc[new.make_model.isin((new.make_model.value_counts()[new.make_model.value_counts() <= 200]).index), 'make_model'] = 'other' #去除低頻詞
再感受下第二個(gè)case
data['day'] = data['time'].apply(lambda x : int(time.strftime("%d", time.localtime(x))))
data['period'] = data['day']
data[['period']].head(3)
data['period'].unique() # array([29, 30, 31, 27, 1, 2, 28, 3])
直接用列篩選
[data['period']<27]
"""
[0 False
1 False
2 False
3 False
4 False
...
1041669 True
1041670 True
1041671 True
1041672 True
1041673 True
Name: period, Length: 1041674, dtype: bool]
"""
data['period']<27
"""
0 False
1 False
2 False
3 False
4 False
...
1041669 True
1041670 True
1041671 True
1041672 True
1041673 True
Name: period, Length: 1041674, dtype: bool
"""挑選period列,值<27的行(已成功挑選)
data['period'][data['period']<27]
"""
950 1
951 1
952 1
953 1
954 1
..
1041669 3
1041670 3
1041671 3
1041672 3
1041673 3
Name: period, Length: 348536, dtype: int64
"""
data['period'][data['period']<27] = data['period'][data['period']<27] + 31這樣可以使用head展示
data[['period']][data['period']<27].head(3)

還有種單列就能篩選的方法
t2['receive_number'] = t2.date_received.apply(lambda s:len(s.split(':')))
t2 = t2[t2.receive_number>1]
t2.head(3)
到此這篇關(guān)于Pandas篩選某列過(guò)濾的方法的文章就介紹到這了,更多相關(guān)Pandas篩選某列過(guò)濾內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 用NumPy創(chuàng)建二維數(shù)組的案例
這篇文章主要介紹了Python 用NumPy創(chuàng)建二維數(shù)組的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
在notepad++中實(shí)現(xiàn)直接運(yùn)行python代碼
今天小編就為大家分享一篇在notepad++中實(shí)現(xiàn)直接運(yùn)行python代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
Python中內(nèi)置數(shù)據(jù)類型list,tuple,dict,set的區(qū)別和用法
這篇文章主要給大家介紹了Python中內(nèi)置數(shù)據(jù)類型list,tuple,dict,set的區(qū)別和用法,都是非?;A(chǔ)的知識(shí),十分的細(xì)致全面,有需要的小伙伴可以參考下。2015-12-12
python3訪問(wèn)sina首頁(yè)中文的處理方法
如果用python3的urllib或python2的urllib2訪問(wèn)網(wǎng)頁(yè),都不能得到正確的中文字符串,看下面的解決方法2014-02-02
Django REST framework 單元測(cè)試實(shí)例解析
這篇文章主要介紹了Django REST framework 單元測(cè)試實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11

