平时处理数据集中,总是需要选中一些列的数据,去预测其他列的数据,所以data.iloc[],在数据分析中显得尤为方便。
介绍一下data.iloc[]
data.iloc[]
是 Python 中 pandas 库的一个非常有用的功能,它允许你通过行和列的整数位置索引来选择数据。iloc
是 "integer location" 的缩写,意味着你可以通过指定行和列的整数索引来选择数据,而不是使用标签。
以下是一些使用 data.iloc[]
的基本示例:
-
选择单个元素 :
使用
data.iloc[row_index, column_index]
来选择特定的元素。pythonelement = data.iloc[0, 1] # 选择第1行第2列的元素
-
选择一行 :
使用
data.iloc[i,:]
来选择第i
行的所有列。pythonrow = data.iloc[2, :] # 选择第3行的所有列
-
选择一列 :
使用
data.iloc[:, j]
来选择第j
列的所有行。pythoncolumn = data.iloc[:, 1] # 选择第2列的所有行
-
选择多个行和列 :
使用
data.iloc[i:m, j:n]
来选择从第i
行到第m
行,第j
列到第n
列的数据。pythonsub_data = data.iloc[0:3, 1:4] # 选择第1行到第3行,第2列到第4列的数据
-
使用切片 :
iloc
也支持 Python 的切片语法,可以用于选择行或列的范围。pythonsub_data_rows = data.iloc[0:5:2, :] # 选择第1行到第5行,步长为2的行 sub_data_cols = data.iloc[:, 1:5:2] # 选择第2列到第5列,步长为2的列
-
选择多个不连续的行或列 :
使用数组或列表来选择多个不连续的行或列。
pythonselected_rows = data.iloc[[0, 2, 4], :] # 选择第1、3、5行的所有列 selected_cols = data.iloc[:, [1, 3]] # 选择第2、4列的所有行
请注意,在使用 iloc
时,索引是从0开始的,即第一行或第一列的索引是0。此外,iloc
只能用于选择行和列,不能用于选择 DataFrame 中的标签(即列名或索引)。如果你需要基于标签选择数据,应该使用 loc
而不是 iloc
。
在数据分析代码中的应用
这是在一个数据分析代码中的一部分,这里就用了iloc[]选取前两列作为特征数据,第三列作为目标变量(也就是通过前两列的值预测最后一列的数据)。
python
# 1. 数据加载
data = pd.read_csv('data.csv')
X = data.iloc[:, :2] # 取前两列作为特征
y = data.iloc[:, 2] # 取第三列作为目标变量
# 2. 数据预处理
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)