日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python?Pandas中布爾索引的用法詳解_python

作者:海擁 ? 更新時間: 2022-10-27 編程語言

在布爾索引中,我們將根據 DataFrame 中數據的實際值而不是它們的行/列標簽或整數位置來選擇數據子集。在布爾索引中,我們使用布爾向量來過濾數據。

布爾索引是一種使用 DataFrame 中數據的實際值的索引。在布爾索引中,我們可以通過四種方式過濾數據:

  • 使用布爾索引訪問 DataFrame
  • 將布爾掩碼應用于數據幀
  • 根據列值屏蔽數據
  • 根據索引值屏蔽數據

使用布爾索引訪問 DataFrame

為了訪問具有布爾索引的數據幀,我們必須創建一個數據幀,其中數據幀的索引包含一個布爾值,即“真”或“假”。

例子

# 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)

輸出:?

現在我們已經創建了一個帶有布爾索引的數據框,之后用戶可以在布爾索引的幫助下訪問數據框。用戶可以使用 .loc[]、.iloc[]、.ix[] 三個函數訪問數據幀?

使用.loc[]訪問具有布爾索引的數據框

為了使用 .loc[] 訪問具有布爾索引的數據幀,我們只需在 .loc[] 函數中傳遞一個布爾值(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]}

# 使用布爾索引創建數據框
df = pd.DataFrame(dict, index = [True, False, True, False])

# 使用 .loc[] 函數訪問數據框
print(df.loc[True])

輸出:?

使用.iloc[]訪問具有布爾索引的數據框

為了使用 .iloc[] 訪問數據幀,我們必須傳遞一個布爾值(True 或 False),但 iloc[] 函數只接受整數作為參數,因此它會拋出錯誤,因此我們只能在我們訪問數據幀時訪問在 iloc[] 函數中傳遞一個整數?

代碼#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 = [True, False, True, False])

# 使用 .iloc[] 函數訪問數據幀
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]}

# 使用布爾索引創建數據框
df = pd.DataFrame(dict, index = [True, False, True, False])


# 使用 .iloc[] 函數訪問數據幀
print(df.iloc[1])

輸出:

使用.ix[]訪問具有布爾索引的數據框

為了使用 .ix[] 訪問數據幀,我們必須將布爾值(True 或 False)和整數值傳遞給 .ix[] 函數,因為我們知道 .ix[] 函數是 .loc[] 的混合體和 .iloc[] 函數。?

代碼#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 = [True, False, True, False])


# 使用 .ix[] 函數訪問數據幀
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]}

# 使用布爾索引創建數據框
df = pd.DataFrame(dict, index = [True, False, True, False])


# 使用 .ix[] 函數訪問數據幀
print(df.ix[1])

輸出:?

將布爾掩碼應用于數據框

在數據框中,我們可以應用布爾掩碼。為此,我們可以使用 getitems 或 [] 訪問器。我們可以通過給出與數據幀中包含的長度相同的 True 和 False 列表來應用布爾掩碼。當我們應用布爾掩碼時,它將僅打印我們傳遞布爾值 True 的數據幀。

代碼#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文件制作數據框
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]])

輸出:?

根據列值屏蔽數據

在數據框中,我們可以根據列值過濾數據。為了過濾數據,我們可以使用不同的運算符對數據框應用某些條件,例如 ==、>、<、<=、>=。當我們將這些運算符應用于數據幀時,它會產生一系列真假。

代碼#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)

# 使用比較運算符過濾數據
print(df['degree'] == 'BCA')

輸出:?

代碼#2:

# importing pandas package
import pandas as pd

# 從csv文件制作數據框
data = pd.read_csv("nba.csv", index_col ="Name")

# 使用大于運算符過濾數據
print(data['Age'] > 25)

輸出:?

根據索引值屏蔽數據:?

在數據框中,我們可以根據列值過濾數據。為了過濾數據,我們可以使用 ==、>、< 等不同的運算符根據索引值創建掩碼。

代碼#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文件制作數據框
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])

# 根據索引值過濾數據
mask = df.index > 7

print(df[mask])

輸出:?

原文鏈接:https://juejin.cn/post/7137885620919074852

欄目分類
最近更新