pandas數(shù)據(jù)處理基礎(chǔ)之篩選指定行或者指定列的數(shù)據(jù)
pandas主要的兩個(gè)數(shù)據(jù)結(jié)構(gòu)是:series(相當(dāng)于一行或一列數(shù)據(jù)機(jī)構(gòu))和DataFrame(相當(dāng)于多行多列的一個(gè)表格數(shù)據(jù)機(jī)構(gòu))。
本文為了方便理解會(huì)與excel或者sql操作行或列來(lái)進(jìn)行聯(lián)想類比
1.重新索引:reindex和ix
上一篇中介紹過(guò)數(shù)據(jù)讀取后默認(rèn)的行索引是0,1,2,3...這樣的順序號(hào)。列索引相當(dāng)于字段名(即第一行數(shù)據(jù)),這里重新索引意思就是可以將默認(rèn)的索引重新修改成自己想要的樣子。
1.1 Series
比方說(shuō):data=Series([4,5,6],index=['a','b','c']),行索引為a,b,c。
我們用data.reindex(['a','c','d','e'])修改索引后則輸出:
可以理解成我們用reindex設(shè)了索引后,根據(jù)索引去原來(lái)data里面匹配對(duì)應(yīng)的值,沒(méi)匹配上的就是NaN。
1.2 DataFrame
(1)行索引修改:DataFrame行索引同Series
(2)列索引修改:列索引用reindex(columns=['m1','m2','m3']),用參數(shù)columns來(lái)指定對(duì)列索引進(jìn)行修改。修改邏輯類似行索引,也是相當(dāng)于用新列索引去匹配原來(lái)的數(shù)據(jù),沒(méi)匹配上的置NaN
例:
(3)同時(shí)對(duì)行和列索引進(jìn)行修改可以用
2.丟棄指定軸上的列(通俗的說(shuō)法就是刪除行或者列):drop
通過(guò)索引進(jìn)行選擇刪除哪一行或者哪一列
data.drop(['a','c']) 相當(dāng)于delete table a where xid='a' or xid='c'
data.drop('m1',axis=1)相當(dāng)于delete table a where yid='m1'
3.選取和過(guò)濾(通俗的說(shuō)就是sql中按照條件篩選查詢)
python中因?yàn)橛行辛兴饕谧鰯?shù)據(jù)的篩選會(huì)比較方便
3.1 Series
(1)按照行索引進(jìn)行選擇如
obj['b']相當(dāng)于select * from tb where xid='b'obj['b','a','c']
相當(dāng)于select * from tb where xid in ('a','b','c')
,且結(jié)果按照b ,a ,c 的順序排列后進(jìn)行展示,這是與sql的區(qū)別obj[0:1]和obj['a':'b']的區(qū)別如下:
#前者是不包含末端,后者是包含了末端
(2)按照值的大小進(jìn)行篩選obj[obj>-0.6]相當(dāng)于在obj數(shù)據(jù)中找出值比-0.6大的記錄進(jìn)行展示
3.2 DataFrame
(1)選擇單行用ix或者xs:
如篩選索引為b的那條行記錄用以下三種方式
(2)選擇多行:
篩選索引為a,b的兩條行記錄的方式
#以上不能直接寫(xiě)成data[['a','b']]
data[0:2]表示從第一行到第二行的記錄。第一行默認(rèn)從0開(kāi)始數(shù),不包含末端的2。
(3)選擇單列
篩選m1列的所有行記錄數(shù)據(jù)
(4)選擇多列
篩選m1,m3兩個(gè)列,所有行記錄的數(shù)據(jù)
ix[:,['m1','m2']]前面的:表示所有的行都篩選進(jìn)來(lái)。
(5)根據(jù)值的大小條件篩選行或者列
如篩選出某一列值大于4的所有記錄相當(dāng)于select * from tb where 列名>4
(6)如果篩選某列值大于4的所有記錄,且只需展示部分列的情況時(shí)
行用條件進(jìn)行篩選,列用[0,2]篩選第一列和第三列的數(shù)據(jù)
總結(jié)
以上所述是小編給大家介紹的pandas數(shù)據(jù)處理基礎(chǔ)之篩選指定行或者指定列的數(shù)據(jù),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- pandas按若干個(gè)列的組合條件篩選數(shù)據(jù)的方法
- pandas系列之DataFrame 行列數(shù)據(jù)篩選實(shí)例
- 使用pandas實(shí)現(xiàn)篩選出指定列值所對(duì)應(yīng)的行
- 使用Pandas對(duì)數(shù)據(jù)進(jìn)行篩選和排序的實(shí)現(xiàn)
- pandas 按日期范圍篩選數(shù)據(jù)的實(shí)現(xiàn)
- pandas按條件篩選數(shù)據(jù)的實(shí)現(xiàn)
- Pandas 如何篩選包含特定字符的列
- pandas數(shù)據(jù)篩選和csv操作的實(shí)現(xiàn)方法
- Python?Pandas條件篩選功能
- python使用pandas實(shí)現(xiàn)篩選功能方式
相關(guān)文章
在MAC上搭建python數(shù)據(jù)分析開(kāi)發(fā)環(huán)境
這篇文章主要介紹了在MAC上搭建python數(shù)據(jù)分析開(kāi)發(fā)環(huán)境的相關(guān)資料,需要的朋友可以參考下2016-01-01Python的Django框架中消息通知的計(jì)數(shù)器實(shí)現(xiàn)教程
通知的計(jì)數(shù)器非常有用,新通知時(shí)+1和讀過(guò)通知后的-1是最基本的功能,這里我們就來(lái)看一下Python的Django框架中消息通知的計(jì)數(shù)器實(shí)現(xiàn)教程2016-06-06Python使用pyyaml模塊處理yaml數(shù)據(jù)
這篇文章主要介紹了Python使用pyyaml模塊處理yaml數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04python3中datetime庫(kù),time庫(kù)以及pandas中的時(shí)間函數(shù)區(qū)別與詳解
這篇文章主要介紹了python3中datetime庫(kù),time庫(kù)以及pandas中的時(shí)間函數(shù)區(qū)別與詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04python生成隨機(jī)紅包的實(shí)例寫(xiě)法
在本篇文章里小編給大家整理的是關(guān)于python生成隨機(jī)紅包的實(shí)例寫(xiě)法以及相關(guān)知識(shí)點(diǎn),有需要的朋友們可以學(xué)習(xí)下。2019-09-09和孩子一起學(xué)習(xí)python之變量命名規(guī)則
這篇文章我們給大家總結(jié)了關(guān)于兒童學(xué)習(xí)python中的變量命名規(guī)則相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友跟著參考學(xué)習(xí)下。2018-05-05python opencv 圖像拼接的實(shí)現(xiàn)方法
高級(jí)圖像拼接也叫作基于特征匹配的圖像拼接,拼接時(shí)消去兩幅圖像相同的部分,實(shí)現(xiàn)拼接合成全景圖。這篇文章主要介紹了python opencv 圖像拼接,需要的朋友可以參考下2019-06-06