欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
篩選功能(Pandas讀書(shū)筆記9)

還是老套路,我們需要先讀取一組數據作為測試文件。

測試文件使用讀書(shū)筆記7的材料,傳送門(mén)如下:

文件讀取功能(Pandas讀書(shū)筆記7)

分享篩選功能之前,我們先分享如何提取某一列,某一行

一、提取DataFrame數據的某一行

1、顯示前N行

使用head函數

2、顯示后N行

3、顯示任意某一行

這里需要說(shuō)明pandas數據是從0開(kāi)始編號的,而我們原始數據是從1開(kāi)始編號的。

所以使用ix函數的時(shí)候,我們輸入的是ix[2],選擇的是原始數據的第三行

4、顯示任意中間行

特殊說(shuō)明1:選取任意行除了ix函數,loc和iloc均可

特殊說(shuō)明2:這里不像列表那里有左閉右開(kāi)的限制。這里兩個(gè)數字都是閉合的,案例中[7:11]則選取的是第8行至第12行(pandas從0開(kāi)始編號)

二、提取任意列

1、按照列名提取單列

2、按照列名提取多列

三、提取任意行列數據

1、提取5至9行、列名字為名稱(chēng)的數據

2、提取5至9行、列名字為名稱(chēng)的數據(方法二)

3、提取5至9行、列名字為名稱(chēng)、最高的數據

四、單條件篩選

篩選其實(shí)就是將某列符合特殊條件的篩選出來(lái),那我們先設立一個(gè)小目標!將漲跌額為正數的篩選出來(lái)!

如何判斷?無(wú)外乎為大于小于等于判斷咯!

df['漲跌額']是選出漲跌額這一列

我們看到使用判斷后返回的是一個(gè)布爾型的數據,是一個(gè)TRUE和FALSE的集合體。

那我們如何將這個(gè)布爾型的數據實(shí)現篩選的功能呢?

我們將這個(gè)布爾型數據作為一個(gè)參數,外面套上原始數據和中括號即可!就實(shí)現了篩選功能。

原理就是布爾型數據為真的話(huà),羅列出來(lái)!

五、篩選失敗的解決方案

成功的道路總是相同的,不成功的道路各有各的不同,本環(huán)節其實(shí)才是本篇文章的精華之一,另一個(gè)精華就是模糊篩選~~

我們已經(jīng)實(shí)現了根據漲跌額來(lái)實(shí)現篩選,那根據漲跌幅為正數進(jìn)行篩選可以嗎?

我們先試驗一下!

錯誤提示字面理解就是大于號不能存在在文本和整型之間。

轉義一下就是你的原始數據不能是字符串!

常見(jiàn)錯誤:原始數字使用文本形式存儲

所以在這里和大家介紹一下如何強制文本轉數字

上述兩種方法均可!

細心的朋友肯定會(huì )說(shuō):“你框我!不是轉化漲跌幅咩!怎么搞成漲跌額了!”

發(fā)現傳統的文本轉數字不管用哇!為蝦米呢?這個(gè)文本轉數字只適用于數字以文本形式存儲的數據,不適用于本身只能用文本形式存儲的數據。(略拗口,可以自己想想~)

由于原始數據帶了一個(gè)%。所以帶%的文本轉數字是比較麻煩的~麻煩程度與Excel處理該類(lèi)問(wèn)題相同。

那如何解決呢?

df['漲跌幅'] = df['漲跌幅'].str.strip('%').astype(float)/100;

我們使用str.strip('%')函數將原始數據的百分號剔除,然后使用astype(float)將原始數據強制轉化為浮點(diǎn)型數據,除以100,讓原始數據保持不變;最后使用賦值將更改后的數據重新賦值給漲跌幅那一列。

然后就可以毫無(wú)壓力的實(shí)現目標了!只不過(guò)將最初的百分比形式展示的改為了小數。

六、多條件篩選

1、且關(guān)系篩選

我們想要得到漲跌幅大于0,且成交量大于1000的數據。

首先漲跌幅大于0怎么表示呢?

df['漲跌幅']>0

成交量大于1000怎么表示呢?

df['成交量']>1000

錯誤總是那么相似,做個(gè)文本轉數字吧

pd.to_numeric(df['成交量'])>1000

發(fā)現還不行,原來(lái)還有這個(gè)符號“-”,無(wú)法強制轉化為數字!

事實(shí)證明,工作中的編程其實(shí)是處于發(fā)現問(wèn)題,解決問(wèn)題的過(guò)程~

那我們多增加一步,先把-替換掉

pd.to_numeric(df['成交量'].str.strip('-'))>1000

費了九年二虎之力,終于分別實(shí)現了不同列的判斷條件。

如何把兩列混合在一起呢?如何以且關(guān)系進(jìn)行組合判斷呢?

df[(df['漲跌幅'] >0)&(pd.to_numeric(df['成交量'].str.strip('-'))>1000)]

我們看一下代碼的邏輯,單條件的代碼邏輯如下:

變量[變量[列]符合什么條件]

簡(jiǎn)化就是 變量的中括號內接一個(gè)條件

那多條件如何表達呢?

變量[(條件1)&(條件2)&(條件N)]

多條件且關(guān)系篩選其實(shí)就是將不同條件用括號括起來(lái)后使用&字符連接~

2、或關(guān)系篩選

前面有了且關(guān)系的鋪墊,或關(guān)系其實(shí)就是把&變更為 |即可!

df[(df['漲跌幅'] >0)|(pd.to_numeric(df['成交量'].str.strip('-'))>1000)]

變量[(條件1)|(條件2)|(條件N)]

七、模糊篩選

模糊篩選想當年也浪費了我不少時(shí)間,我以為pandas會(huì )自帶一個(gè)函數來(lái)的,結果是使用字符串的形式來(lái)實(shí)現的~

提問(wèn):我們將名稱(chēng)那一列含有“金”字的行提取出來(lái)~

Excel實(shí)現這個(gè)功能很簡(jiǎn)單,因為可以通過(guò)我最喜歡的通配符實(shí)現~

pandas只能使用字符串函數find函數,該函數用法與Excel相同~

解釋一下這段代碼

df[df['名稱(chēng)'].str.find('金', start=0, end=None)>=0]

最外層的df[ ]表示呈現整個(gè)表

df['名稱(chēng)'].str.find('金', start=0, end=None)>=0

將名稱(chēng)那一列使用字符串的find函數,如果find的返回值大于0,證明就是含有金字的,如果沒(méi)有金字,返回值是-1,所以通過(guò)該方法可以判斷哪行數據含有金字。

嗯嗯,很有才~~~

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
單列文本拆分為多列,Python可以自動(dòng)化
用于文本數據分析的 Pandas:使用 str 訪(fǎng)問(wèn)器清理和操作文本數據
讀取行情數據,極速預處理,輕松助你成為數據分析高手!
利用pandas的函數,直接生成一列數據,每項數據是有 省-市-區構成,比如 1-2-2
pandas數據的分組與分列
高管數據 | 使用pandas對xlsx中的簡(jiǎn)介字段做文本分析
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久