s [s] 表示法如何以及为什么起作用?
我正在从kaggle.com上选一门微课程,它们使用符号s [s],如下所示。我以前没看过。 X_train是一个熊猫DataFrame。
这是一个列表切片吗?有人可以帮忙澄清一下吗?
s = (X_train.dtypes == 'object') ## assigns True to variables == 'object'
object_cols = list(s[s].index)
> s
Type True
Method True
Regionname True
Rooms False
Distance False
Postcode False
Bedroom2 False
Bathroom False
Landsize False
Lattitude False
Longtitude False
Propertycount False
dtype: bool
> s[s]
Type True
Method True
Regionname True
dtype: bool
答案 0 :(得分:0)
Pandas DataFrames允许您index using boolean arrays,这是s
在[]
内部的使用方式。如您所见,系列的值是True
或False
,因此我们选择s
的值,其中s
是True
。这段代码的目的是获取数据类型为object
的列,您可以使用函数pandas.DataFrame.select_dtypes
代替:
list(X_train.select_dtypes(include=['object']).columns)
答案 1 :(得分:0)
这很复杂。
X_train是一个熊猫数据框。
X_train.dtypes返回一个熊猫系列,其中索引(每行的名称)等于列名。
我们现在在Series上执行==,它返回一个新的系列,其值为true或false。看起来像这样:
a True
b False
c True
现在,我们进入x [x],它表示删除“ false”值,并给出一个新的Series:
a True
c True
现在,我们执行.index并将其转换为要提供的列表
['a', 'c' ]