本文将详细讲解 pandas
库中选取特定列的三种常用方法 iloc/loc/icol
。这三种方法用于选取 DataFrame
或 Series
中的列数据,并支持对行切片。本文还将通过示例说明这三个方法的使用。
1. iloc 的用法
iloc
可以根据列的位置来选取数据。它的语法为:
df.iloc[:, columns]
其中,columns
参数可以是单个列的位置或者列位置的列表/切片。
下面是一个示例:
import pandas as pd
df = pd.read_csv('data.csv')
# 取第一列
col1 = df.iloc[:, 0]
# 取第 1 至 3 列
cols_1to3 = df.iloc[:, 0:3]
# 取第 2 条数据的第 1 到第 3 列
data_1_row_2_1to3 = df.iloc[1, 0:3]
此处我们首先使用 pandas
库读取了用户名单数据,然后使用 iloc
选取了第一列。接着我们使用 iloc
进行了列切片,选取了第 1 至 3 列的数据。最后,我们还使用 iloc
进行了行列切片,选取了第 2 条数据的第 1 到第 3 列的数据。
2. loc 的用法
loc
可以根据列的标签名来选取数据。它的语法为:
df.loc[:, columns]
其中,columns
参数可以是单个列的列标签或者列标签的列表/切片。
下面是一个示例:
import pandas as pd
df = pd.read_csv('data.csv')
# 取 username,gender 和 age 三列的数据
cols_username_gender_age = df.loc[:, ['username', 'gender', 'age']]
# 取第 2 条到第 5 条数据的“username”和“age”两列
rows_2to5_username_age = df.loc[1:4, ['username', 'age']]
此处我们使用 pandas
库读取用户名单数据,然后使用 loc
方法选取了“username”、“gender”和“age”这三列的数据。接着我们使用了行列切片,选取了第 2 条到第 5 条数据的“username”和“age”这两列的数据。
3. icol 的用法
icol
可以根据列的位置来选取数据,但它已经被推荐修改为使用 iloc
方法。因此,当需要根据列的位置来选取数据时,建议使用 iloc
。
df.iloc[:, columns]
总体来说,iloc
/loc
/icol
方法可以让我们按照位置或标签选取特定的列,且支持对数据的行进行切片,是数据分析必备的基本技能之一。