Pandas中iloc切片的工作原理及代码`X = pd.get_dummies(df.iloc[:,0:6])`的疑问
Pandas中iloc切片的工作原理及代码
X = pd.get_dummies(df.iloc[:,0:6])的疑问 嘿,我来帮你拆解这段代码,搞清楚每个部分的作用,尤其是你困惑的[:,0:6]切片~
先搞懂df.iloc[:,0:6]的切片逻辑
iloc是Pandas里按位置索引提取数据的方法,它的语法是iloc[行选择, 列选择],逗号分隔行和列的筛选规则:
- 前面的
:是行的选择:代表“取出所有行”,没有任何行的过滤,保留原DataFrame里的每一行数据; - 后面的
0:6是列的选择:Pandas的切片是左闭右开的,意思是取从第0列(最左边的第一列)到第5列的所有列,总共6列数据(因为不包含索引为6的列)。
简单说,这部分代码就是从你的DataFramedf里,提取出所有行的前6列数据。
再看pd.get_dummies(...)的作用
pd.get_dummies()是Pandas专门用来处理分类数据的工具,机器学习算法大多只能处理数值型数据,而分类数据(比如字符串类型的类别、枚举值)没法直接被模型识别,这个函数就会把这些分类列转换成**独热编码(One-Hot Encoding)**的格式:
- 比如你有一列是
["苹果", "香蕉", "苹果", "橙子"],它会生成3个新列:苹果(1,0,1,0)、香蕉(0,1,0,0)、橙子(0,0,0,1),把每个类别都转成二进制的数值列,让模型能读懂。
整行代码的完整含义
把两部分结合起来,X = pd.get_dummies(df.iloc[:,0:6])做了这两件事:
- 从DataFrame
df中提取所有行的前6列数据; - 将这6列中所有的分类数据转换成独热编码格式;
- 把处理好的数值型数据集赋值给变量
X,这样X就可以直接作为机器学习模型的输入数据啦。
备注:内容来源于stack exchange,提问作者Adde
相关产品推荐
相关产品推荐

