您的位置:

详解 pandas 中 .iloc 的用法

pandas 可以说是 python 中最常用的数据处理库之一,而其中的 .iloc 就是其中一个比较重要的方法。在本文中,我们将会从各个角度详细讲解 .iloc 的作用、用法和注意事项。

一、选择单个元素

我们可以使用 .iloc 选择一个具体的元素,只需要传入 DataFrame 或 Series 中相应的行和列的位置即可。比如选取 DataFrame 中第二行第三列的元素:

import pandas as pd 

data = {'name': ['John', 'Jane', 'Joe', 'Mike'], 
        'age': [23, 19, 29, 31], 
        'country': ['US', 'CA', 'UK', 'AU']}
df = pd.DataFrame(data) 
print(df.iloc[1, 2]) 
# 输出: CA

这里我们使用 .iloc[1,2] 来选取位置在第二行第三列的元素,注意索引是从 0 开始的。

二、选择连续的行和列

我们也可以使用切片的方式来选择连续多行/列的元素,只需要使用 : 来表示一个区间即可。比如选取 DataFrame 中第二行到第四行和第二列到第三列的元素:

print(df.iloc[1:4, 1:3]) 
# 输出: 
#    age country
# 1   19      CA
# 2   29      UK
# 3   31      AU

这里 .iloc[1:4, 1:3] 表示选择位置在第二行到第四行和第二列到第三列的元素。

三、选择不连续的行和列

我们也可以使用列表的方式来选择不连续的行和列的元素。比如选取 DataFrame 中第一行和第三行的第一列和第三列的元素:

print(df.iloc[[0,2], [0,2]]) 
# 输出:
#    name country
# 0  John      US
# 2   Joe      UK

这里 .iloc[[0,2],[0,2]] 表示选择位置在第一行和第三行的第一列和第三列的元素。

四、使用布尔数组进行选择

我们也可以使用布尔类型的列表或数组来进行选择。比如从 DataFrame 中选择年纪大于 25 的元素:

print(df.iloc[df['age'] > 25]) 
# 输出:
#    name  age country
# 2   Joe   29      UK
# 3  Mike   31      AU

这里我们使用了布尔类型的数组 df['age'] > 25 来进行索引。

五、选择所有行或列

如果想要选择所有行或列,可以使用 : 来进行表示。比如选择所有行和第二列的元素:

print(df.iloc[:, 1]) 
# 输出:
# 0    23
# 1    19
# 2    29
# 3    31
# Name: age, dtype: int64

这里 .iloc[:,1] 表示选择所有行和第二列的元素。

六、使用负数进行选择

使用负数进行选择时,pandas 会从后向前计数。比如下面的例子中选取最后一行的第二个元素:

print(df.iloc[-1, -2]) 
# 输出: AU

这里使用了负数索引,-1 代表最后一行,-2 代表倒数第二列。

总结

本文详细阐述了 .iloc 方法的用法和注意事项。通过不同的用法,我们可以方便地从 DataFrame 或 Series 中选取所需的元素。这些技巧对于数据分析和处理都是非常有用的。