Python?Pandas中布爾索引的用法詳解
在布爾索引中,我們將根據(jù) DataFrame 中數(shù)據(jù)的實(shí)際值而不是它們的行/列標(biāo)簽或整數(shù)位置來(lái)選擇數(shù)據(jù)子集。在布爾索引中,我們使用布爾向量來(lái)過濾數(shù)據(jù)。
布爾索引是一種使用 DataFrame 中數(shù)據(jù)的實(shí)際值的索引。在布爾索引中,我們可以通過四種方式過濾數(shù)據(jù):
- 使用布爾索引訪問 DataFrame
- 將布爾掩碼應(yīng)用于數(shù)據(jù)幀
- 根據(jù)列值屏蔽數(shù)據(jù)
- 根據(jù)索引值屏蔽數(shù)據(jù)
使用布爾索引訪問 DataFrame
為了訪問具有布爾索引的數(shù)據(jù)幀,我們必須創(chuàng)建一個(gè)數(shù)據(jù)幀,其中數(shù)據(jù)幀的索引包含一個(gè)布爾值,即“真”或“假”。
例子
# importing pandas as pd import pandas as pd # 列表字典 dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"], 'degree': ["MBA", "BCA", "M.Tech", "MBA"], 'score':[90, 40, 80, 98]} df = pd.DataFrame(dict, index = [True, False, True, False]) print(df)
輸出:
現(xiàn)在我們已經(jīng)創(chuàng)建了一個(gè)帶有布爾索引的數(shù)據(jù)框,之后用戶可以在布爾索引的幫助下訪問數(shù)據(jù)框。用戶可以使用 .loc[]、.iloc[]、.ix[] 三個(gè)函數(shù)訪問數(shù)據(jù)幀
使用.loc[]訪問具有布爾索引的數(shù)據(jù)框
為了使用 .loc[] 訪問具有布爾索引的數(shù)據(jù)幀,我們只需在 .loc[] 函數(shù)中傳遞一個(gè)布爾值(True 或 False)。
# importing pandas as pd import pandas as pd # 列表字典 dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"], 'degree': ["MBA", "BCA", "M.Tech", "MBA"], 'score':[90, 40, 80, 98]} # 使用布爾索引創(chuàng)建數(shù)據(jù)框 df = pd.DataFrame(dict, index = [True, False, True, False]) # 使用 .loc[] 函數(shù)訪問數(shù)據(jù)框 print(df.loc[True])
輸出:
使用.iloc[]訪問具有布爾索引的數(shù)據(jù)框
為了使用 .iloc[] 訪問數(shù)據(jù)幀,我們必須傳遞一個(gè)布爾值(True 或 False),但 iloc[] 函數(shù)只接受整數(shù)作為參數(shù),因此它會(huì)拋出錯(cuò)誤,因此我們只能在我們?cè)L問數(shù)據(jù)幀時(shí)訪問在 iloc[] 函數(shù)中傳遞一個(gè)整數(shù)
代碼#1:
# importing pandas as pd import pandas as pd # 列表字典 dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"], 'degree': ["MBA", "BCA", "M.Tech", "MBA"], 'score':[90, 40, 80, 98]} # 使用布爾索引創(chuàng)建數(shù)據(jù)框 df = pd.DataFrame(dict, index = [True, False, True, False]) # 使用 .iloc[] 函數(shù)訪問數(shù)據(jù)幀 print(df.iloc[True])
輸出:
TypeError
代碼#2:
# importing pandas as pd import pandas as pd # 列表字典 dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"], 'degree': ["MBA", "BCA", "M.Tech", "MBA"], 'score':[90, 40, 80, 98]} # 使用布爾索引創(chuàng)建數(shù)據(jù)框 df = pd.DataFrame(dict, index = [True, False, True, False]) # 使用 .iloc[] 函數(shù)訪問數(shù)據(jù)幀 print(df.iloc[1])
輸出:
使用.ix[]訪問具有布爾索引的數(shù)據(jù)框
為了使用 .ix[] 訪問數(shù)據(jù)幀,我們必須將布爾值(True 或 False)和整數(shù)值傳遞給 .ix[] 函數(shù),因?yàn)槲覀冎?.ix[] 函數(shù)是 .loc[] 的混合體和 .iloc[] 函數(shù)。
代碼#1:
# importing pandas as pd import pandas as pd # 列表字典 dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"], 'degree': ["MBA", "BCA", "M.Tech", "MBA"], 'score':[90, 40, 80, 98]} # 使用布爾索引創(chuàng)建數(shù)據(jù)框 df = pd.DataFrame(dict, index = [True, False, True, False]) # 使用 .ix[] 函數(shù)訪問數(shù)據(jù)幀 print(df.ix[True])
輸出:
代碼#2:
# importing pandas as pd import pandas as pd # 列表字典 dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"], 'degree': ["MBA", "BCA", "M.Tech", "MBA"], 'score':[90, 40, 80, 98]} # 使用布爾索引創(chuàng)建數(shù)據(jù)框 df = pd.DataFrame(dict, index = [True, False, True, False]) # 使用 .ix[] 函數(shù)訪問數(shù)據(jù)幀 print(df.ix[1])
輸出:
將布爾掩碼應(yīng)用于數(shù)據(jù)框
在數(shù)據(jù)框中,我們可以應(yīng)用布爾掩碼。為此,我們可以使用 getitems 或 [] 訪問器。我們可以通過給出與數(shù)據(jù)幀中包含的長(zhǎng)度相同的 True 和 False 列表來(lái)應(yīng)用布爾掩碼。當(dāng)我們應(yīng)用布爾掩碼時(shí),它將僅打印我們傳遞布爾值 True 的數(shù)據(jù)幀。
代碼#1:
# importing pandas as pd import pandas as pd # 列表字典 dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"], 'degree': ["MBA", "BCA", "M.Tech", "MBA"], 'score':[90, 40, 80, 98]} df = pd.DataFrame(dict, index = [0, 1, 2, 3]) print(df[[True, False, True, False]])
輸出:
代碼#2:
# importing pandas package import pandas as pd # 從csv文件制作數(shù)據(jù)框 data = pd.read_csv("nba1.1.csv") df = pd.DataFrame(data, index = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) print(df[[True, False, True, False, True, False, True, False, True, False, True, False, True]])
輸出:
根據(jù)列值屏蔽數(shù)據(jù)
在數(shù)據(jù)框中,我們可以根據(jù)列值過濾數(shù)據(jù)。為了過濾數(shù)據(jù),我們可以使用不同的運(yùn)算符對(duì)數(shù)據(jù)框應(yīng)用某些條件,例如 ==、>、<、<=、>=。當(dāng)我們將這些運(yùn)算符應(yīng)用于數(shù)據(jù)幀時(shí),它會(huì)產(chǎn)生一系列真假。
代碼#1:
# importing pandas as pd import pandas as pd # 列表字典 dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"], 'degree': ["BCA", "BCA", "M.Tech", "BCA"], 'score':[90, 40, 80, 98]} # 創(chuàng)建數(shù)據(jù)框 df = pd.DataFrame(dict) # 使用比較運(yùn)算符過濾數(shù)據(jù) print(df['degree'] == 'BCA')
輸出:
代碼#2:
# importing pandas package import pandas as pd # 從csv文件制作數(shù)據(jù)框 data = pd.read_csv("nba.csv", index_col ="Name") # 使用大于運(yùn)算符過濾數(shù)據(jù) print(data['Age'] > 25)
輸出:
根據(jù)索引值屏蔽數(shù)據(jù):
在數(shù)據(jù)框中,我們可以根據(jù)列值過濾數(shù)據(jù)。為了過濾數(shù)據(jù),我們可以使用 ==、>、< 等不同的運(yùn)算符根據(jù)索引值創(chuàng)建掩碼。
代碼#1:
# importing pandas as pd import pandas as pd # 列表字典 dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"], 'degree': ["BCA", "BCA", "M.Tech", "BCA"], 'score':[90, 40, 80, 98]} df = pd.DataFrame(dict, index = [0, 1, 2, 3]) mask = df.index == 0 print(df[mask])
輸出:
代碼#2:
# importing pandas package import pandas as pd # 從csv文件制作數(shù)據(jù)框 data = pd.read_csv("nba1.1.csv") # 為數(shù)據(jù)框提供索引 df = pd.DataFrame(data, index = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) # 根據(jù)索引值過濾數(shù)據(jù) mask = df.index > 7 print(df[mask])
輸出:
以上就是Python Pandas中布爾索引的用法詳解的詳細(xì)內(nèi)容,更多關(guān)于Python Pandas布爾索引的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
django跳轉(zhuǎn)頁(yè)面?zhèn)鲄⒌膶?shí)現(xiàn)
這篇文章主要介紹了django跳轉(zhuǎn)頁(yè)面?zhèn)鲄⒌膶?shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Python Web框架Flask信號(hào)機(jī)制(signals)介紹
這篇文章主要介紹了Python Web框架Flask信號(hào)機(jī)制(signals)介紹,本文介紹Flask的信號(hào)機(jī)制,講述信號(hào)的用途,并給出創(chuàng)建信號(hào)、訂閱信號(hào)、發(fā)送信號(hào)的方法,需要的朋友可以參考下2015-01-01python?flappy?bird小游戲分步實(shí)現(xiàn)流程
哈嘍,哈嘍~今天小編又來(lái)分享小游戲了——flappy?bird(飛揚(yáng)的小鳥),這個(gè)游戲非常的經(jīng)典,游戲中玩家必須控制一只小鳥,跨越由各種不同長(zhǎng)度水管所組成的障礙2022-02-02Python實(shí)現(xiàn)兩個(gè)list求交集,并集,差集的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)兩個(gè)list求交集,并集,差集的方法,結(jié)合實(shí)例形式分析了Python使用intersection、union及difference方法實(shí)現(xiàn)兩個(gè)集合list的交集、并集與差集操作技巧,需要的朋友可以參考下2018-08-08