如何解释这种表示法?

时间:2019-07-09 17:11:04

标签: python pandas

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

2 个答案:

答案 0 :(得分:0)

Pandas DataFrames允许您index using boolean arrays,这是s[]内部的使用方式。如您所见,系列的值是TrueFalse,因此我们选择s的值,其中sTrue。这段代码的目的是获取数据类型为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' ]