一、iloc函數(shù)概述
iloc函數(shù)是Pandas中的常用函數(shù)之一。在Pandas中,一般有兩種方式,即loc和iloc,用來選擇數(shù)據(jù)集中的行和列。其中,iloc函數(shù)主要用于按位置選擇數(shù)據(jù)。iloc函數(shù)的參數(shù)可以是單個整數(shù)、整數(shù)范圍、布爾值數(shù)組或返回布爾值數(shù)組函數(shù)。
下面我們通過幾個小標(biāo)題,來詳細(xì)闡述iloc函數(shù)的用法。
二、按整數(shù)位置選擇數(shù)據(jù)
iloc函數(shù)的第一個參數(shù)可以是整數(shù),表示選擇數(shù)據(jù)集中的第幾行或第幾列。具體方法如下:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 選擇第二行數(shù)據(jù),返回Series類型數(shù)據(jù)
print(df.iloc[1])
# 選擇第三列數(shù)據(jù),返回Series類型數(shù)據(jù)
print(df.iloc[:, 2])
# 選擇第二行第三列數(shù)據(jù),返回數(shù)字類型數(shù)據(jù)
print(df.iloc[1, 2])
上面這段代碼首先創(chuàng)建了一個數(shù)據(jù)表,包含3行3列的數(shù)據(jù)。然后,我們分別用iloc函數(shù)選擇了第二行數(shù)據(jù)、第三列數(shù)據(jù)和第二行第三列數(shù)據(jù)。
三、按整數(shù)范圍選擇數(shù)據(jù)
iloc函數(shù)的第一個參數(shù)還可以是整數(shù)范圍,表示選擇數(shù)據(jù)集中的一段連續(xù)的行或列。具體方法如下:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 選擇第1~2行數(shù)據(jù),返回DataFrame類型數(shù)據(jù)
print(df.iloc[1:3, :])
# 選擇第1~2列數(shù)據(jù),返回DataFrame類型數(shù)據(jù)
print(df.iloc[:, 1:3])
# 選擇第1~2行和第2~3列數(shù)據(jù),返回DataFrame類型數(shù)據(jù)
print(df.iloc[1:3, 1:3])
上面這段代碼首先創(chuàng)建了一個數(shù)據(jù)表,包含3行3列的數(shù)據(jù)。然后,我們分別用iloc函數(shù)選擇了第1~2行數(shù)據(jù)、第1~2列數(shù)據(jù)和第1~2行和第2~3列數(shù)據(jù)。
四、按布爾值數(shù)組選擇數(shù)據(jù)
iloc函數(shù)的第一個參數(shù)還可以是布爾值數(shù)組,表示選擇數(shù)據(jù)集中的符合條件的行或列。具體方法如下:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 選擇B列大于5的行,返回DataFrame類型數(shù)據(jù)
bool_arr = df.iloc[:, 1] > 5
print(df.iloc[bool_arr])
上面這段代碼首先創(chuàng)建了一個數(shù)據(jù)表,包含3行3列的數(shù)據(jù)。然后,我們用iloc函數(shù)選擇了B列大于5的行。
五、按返回布爾值數(shù)組函數(shù)選擇數(shù)據(jù)
iloc函數(shù)的第一個參數(shù)還可以是返回布爾值數(shù)組的函數(shù),表示選擇數(shù)據(jù)集中符合條件的行或列。具體方法如下:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 定義一個返回布爾值數(shù)組的函數(shù)
def my_func(row):
return row['B'] > 5
# 選擇函數(shù)返回值為True的行,返回DataFrame類型數(shù)據(jù)
bool_arr = df.apply(my_func, axis=1)
print(df.iloc[bool_arr])
上面這段代碼首先創(chuàng)建了一個數(shù)據(jù)表,包含3行3列的數(shù)據(jù)。然后,我們定義了一個返回布爾值數(shù)組的函數(shù),該函數(shù)用于按B列大于5的條件來選擇行。最后,我們用iloc函數(shù)選擇了根據(jù)my_func函數(shù)返回值為True的行。
六、總結(jié)
iloc函數(shù)是Pandas中常用的按位置選擇數(shù)據(jù)的函數(shù)。通過這篇文章的介紹,我們可以清楚地了解到iloc函數(shù)的用法,包括按整數(shù)位置選擇數(shù)據(jù)、按整數(shù)范圍選擇數(shù)據(jù)、按布爾值數(shù)組選擇數(shù)據(jù)、按返回布爾值數(shù)組函數(shù)選擇數(shù)據(jù)等。當(dāng)我們需要對數(shù)據(jù)集進(jìn)行按位置選擇時,iloc函數(shù)將會是一個十分有用的工具。