数据集中object列识别:s[s].index代码作用解析
关于
s[s].index的作用解析 我们一步步拆解这段代码的逻辑,就能明白s[s].index的作用:
先看第一行代码
s = (X_train.dtypes == 'object')X_train.dtypes返回的是一个Series,索引是数据集的列名,值是对应列的数据类型。加上== 'object'后,会生成一个布尔Series(也就是变量s):其中值为True的位置,对应原数据集中类型为object的列;值为False的则是其他数据类型的列。再看
s[s]这部分
这是Pandas里的布尔索引筛选操作——用布尔Series本身作为索引,会自动只保留s中值为True的行。此时筛选后的Series,依然保留着原数据集的列名作为索引,只是只留下了那些类型为object的列对应的记录。最后是
.index
这个属性的作用是提取筛选后Series的索引部分,也就是所有类型为object的列的名称。再用list()把它转成列表,就得到了你要的分类变量(object类型)的列名列表。
举个直观的例子:假设X_train有['name', 'age', 'address']三列,其中name和address是object类型,age是int类型。那么:
s的内容是:name True age False address True dtype: bools[s]筛选后是:name True address True dtype: bools[s].index就是Index(['name', 'address'], dtype='object'),转成列表后就是['name', 'address'],也就是最终要的分类变量列名。
内容的提问来源于stack exchange,提问作者Ashraf Badalov
相关产品推荐
相关产品推荐

