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 中选取所需的元素。这些技巧对于数据分析和处理都是非常有用的。