【问题标题】:How does the following code create a dataframe? [duplicate]以下代码如何创建数据框? [复制]
【发布时间】: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


【解决方案1】:

让我们把这个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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多