我正在学习机器学习,在课本上偶然发现了这个numpy.where语句:
housing["income_cat"] = np.ceil(housing["median_income"] / 1.5)
housing["income_cat"].where(housing["income_cat"] < 5, 5.0, inplace=True)
基本上,该代码将收入中位数划分为不同的类别,并将其划分为单独的类别(income _cat代表income _category(。然而,我不明白的是应该如何解释哪里:
我想是这样的:对于housing["income_cat"] <5
的值,那么。。但随后在第二自变量中出现5并且在第三自变量中出现CCD_ 2。
有人能帮我弄清楚吗?谢谢
.where()
方法在Pandas Series类中定义。
在您引用的调用中,前两个参数是位置参数,因此它们映射到cond
和other
变量。当条件cond
计算为False时,other
的值为usd。
例如:
>>> import pandas as pd
>>> column = pd.Series(data=(1,2,3))
>>> column.where(column > 2, -1)
0 -1
1 -1
2 3
dtype: int64
对于该系列的前两个元素,条件column > 2
的计算结果为False。在那里,它被-1取代。
inplace=True
设置确保操作不会返回新对象,而是就地更改对象,这是对性能的考虑,但也有可跟踪性的缺点。