Python?Pandas中布爾索引的用法詳解
在布爾索引中,我們將根據(jù) DataFrame 中數(shù)據(jù)的實際值而不是它們的行/列標(biāo)簽或整數(shù)位置來選擇數(shù)據(jù)子集。在布爾索引中,我們使用布爾向量來過濾數(shù)據(jù)。
布爾索引是一種使用 DataFrame 中數(shù)據(jù)的實際值的索引。在布爾索引中,我們可以通過四種方式過濾數(shù)據(jù):
- 使用布爾索引訪問 DataFrame
- 將布爾掩碼應(yīng)用于數(shù)據(jù)幀
- 根據(jù)列值屏蔽數(shù)據(jù)
- 根據(jù)索引值屏蔽數(shù)據(jù)
使用布爾索引訪問 DataFrame
為了訪問具有布爾索引的數(shù)據(jù)幀,我們必須創(chuàng)建一個數(shù)據(jù)幀,其中數(shù)據(jù)幀的索引包含一個布爾值,即“真”或“假”。
例子
# 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)建了一個帶有布爾索引的數(shù)據(jù)框,之后用戶可以在布爾索引的幫助下訪問數(shù)據(jù)框。用戶可以使用 .loc[]、.iloc[]、.ix[] 三個函數(shù)訪問數(shù)據(jù)幀
使用.loc[]訪問具有布爾索引的數(shù)據(jù)框
為了使用 .loc[] 訪問具有布爾索引的數(shù)據(jù)幀,我們只需在 .loc[] 函數(shù)中傳遞一個布爾值(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ù)幀,我們必須傳遞一個布爾值(True 或 False),但 iloc[] 函數(shù)只接受整數(shù)作為參數(shù),因此它會拋出錯誤,因此我們只能在我們訪問數(shù)據(jù)幀時訪問在 iloc[] 函數(shù)中傳遞一個整數(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ù),因為我們知道 .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ù)幀中包含的長度相同的 True 和 False 列表來應(yīng)用布爾掩碼。當(dāng)我們應(yīng)用布爾掩碼時,它將僅打印我們傳遞布爾值 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ù),我們可以使用不同的運算符對數(shù)據(jù)框應(yīng)用某些條件,例如 ==、>、<、<=、>=。當(dāng)我們將這些運算符應(yīng)用于數(shù)據(jù)幀時,它會產(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)
# 使用比較運算符過濾數(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")
# 使用大于運算符過濾數(shù)據(jù)
print(data['Age'] > 25)
輸出:

根據(jù)索引值屏蔽數(shù)據(jù):
在數(shù)據(jù)框中,我們可以根據(jù)列值過濾數(shù)據(jù)。為了過濾數(shù)據(jù),我們可以使用 ==、>、< 等不同的運算符根據(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中布爾索引的用法詳解的詳細內(nèi)容,更多關(guān)于Python Pandas布爾索引的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用Mac時psycopg2導(dǎo)入PyCharm失敗的解決
這篇文章主要介紹了使用Mac時psycopg2導(dǎo)入PyCharm失敗的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
在Python的Django框架中更新數(shù)據(jù)庫數(shù)據(jù)的方法
這篇文章主要介紹了在Python的Django框架中更新數(shù)據(jù)庫數(shù)據(jù),對此Django框架中提供了便利的插入和更新方法,需要的朋友可以參考下2015-07-07
詳解BeautifulSoup獲取特定標(biāo)簽下內(nèi)容的方法
這篇文章主要介紹了詳解BeautifulSoup獲取特定標(biāo)簽下內(nèi)容的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
python實現(xiàn)靜態(tài)web服務(wù)器
這篇文章主要為大家詳細介紹了python實現(xiàn)靜態(tài)web服務(wù)器,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09

