【发布时间】:2020-07-15 07:58:32
【问题描述】:
在 Kaggle 这个页面上(https://www.kaggle.com/alexisbcook/categorical-variables) 有这段代码
s = (X_train.dtypes == 'object')
object_cols = list(s[s].index)
什么是 s(它是什么类型的对象)以及 s[s].index 是如何工作的?
【问题讨论】:
标签: python-3.x pandas
在 Kaggle 这个页面上(https://www.kaggle.com/alexisbcook/categorical-variables) 有这段代码
s = (X_train.dtypes == 'object')
object_cols = list(s[s].index)
什么是 s(它是什么类型的对象)以及 s[s].index 是如何工作的?
【问题讨论】:
标签: python-3.x pandas
让我们把这个DataFrame:
In [2]: X_train = pd.DataFrame([("f", 2)])
In [3]: X_train
Out[3]:
0 1
0 f 2
第一行s = (X_train.dtypes == 'object') 创建一个系列,指示X_train 中的每一列是否属于object 类型(这里特别是str):
In [4]: s = (X_train.dtypes == 'object')
In [5]: s
Out[5]:
0 True
1 False
dtype: bool
第二行仅选择系列s 中具有True 布尔值的列名,并返回这些列的列表。这个表示法使用了一个叫做 boolean array indexing 的技巧,它允许通过一个布尔迭代来过滤 pandas 对象,在我们的例子中是 s:
In [7]: object_cols = list(s[s].index)
In [8]: object_cols
Out[8]: [0]
【讨论】: