【发布时间】:2019-11-19 07:20:35
【问题描述】:
符号 s[s] 如何以及为何起作用?
我正在学习 kaggle.com 上的一门微课程,它们使用符号 s[s],如下所示。我以前没见过。 X_train 是一个 pandas 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
【问题讨论】:
-
这是有效的,因为
s是一个布尔数组(嗯。系列在技术上是正确的。但你明白了),并不是在任何情况下都适用。这与在这种特殊情况下传递s[some_boolean_array]相同。 -
就像列表切片。
[]有效,因为 DataFrames ans Series 具有__getitem__方法。你所拥有的几乎是说Type, Method, Regionname列有dtypes == object。 Boolean indexing on DataFrames or Series -
重点是
s不是一个列表,它是一个熊猫数据框。 pandas 的主要功能之一是您可以通过许多复杂的方式过滤它们。这包括使用 df 作为索引。