【问题标题】:what is the meaning of series[series]系列是什么意思[系列]
【发布时间】:2021-01-09 21:52:38
【问题描述】:

我目前正在学习一些机器学习,并使用 pandas,在其中一个示例中他们这样做了

# Get list of categorical variables
s = (X_train.dtypes == 'object')
object_cols = list(s[s].index)

print("Categorical variables:")
print(object_cols)

我目前正在努力理解他们做 s[s].index 时发生了什么,s[s] 怎么可能?有人可以帮我吗? 提前致谢

这是我正在阅读的链接:https://www.kaggle.com/alexisbcook/categorical-variables

【问题讨论】:

  • 还可以阅读boolean indexing,因为您拥有的系列已经是一个布尔值,它可以在自身上使用布尔索引
  • 我没有理由这样做。也许你打错了?我想它会是这样的:object_cols = X_train[s].index

标签: python pandas kaggle


【解决方案1】:

您可以按条件索引系列,例如myseries[myseries == 4] 将返回等于 4 的元素。在你的情况下,如果你有一个布尔值,这两个表达式是相同的:

myseries[myseries == True] 
myseries[myseries] 

因此,在您的示例中,您返回 True 的所有元素的索引:

myseries = pd.Series([True, False, True, False])
x = myseries[myseries] # returns Series: (0, True) (2, True)
x = x.index # returns [0,2]

在您的 kaggle 示例的上下文中,这些布尔值由 s = (X_train.dtypes == 'object') 构造,即您发布的代码 sn-p 获取类型为 object 的每个训练示例的索引。

我个人不会推荐这个快捷方式,因为它会不必要地模糊代码并且编写 s[s==True] 并不是太多工作。

【讨论】:

    猜你喜欢
    • 2021-10-01
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    相关资源
    最近更新 更多