python - 获取熊猫中基于查询的选择的对应列的简洁方法
问题描述
我是 python 新手。我正在尝试从https://github.com/ageron/handson-ml/blob/master/02_end_to_end_machine_learning_project.ipynb获取住房指数数据集的子集
我已将数据集导入为“房屋”。我试图在图的顶部仅绘制分位数 0.95 中的异常值,该图显示了 median_house_value 的所有值
import matplotlib.image as mpimg
housing.plot(kind="scatter", x="median_income", y="median_house_value",
alpha=0.1)
这得到了所有行 (i) 的图,我试图为 median_house_value 的子集选择相应的 median_income 行,即 0.95 分位数,并将它们绘制在橙色 (j) 的顶部
以下是我迄今为止的最佳尝试,但没有得到正确的值
plt.plot(housing.groupby('median_house_value').quantile(q=quant)["median_income"], housing.groupby('median_house_value').quantile(q=quant).index.get_level_values('median_house_value'),"or")
我可以通过做..来获得分位数中的 median_house_value 行。
quantile = int(round(housing["median_house_value"].quantile(q=0.95)))
housing.median_house_value > quantile
我想最终得到两个熊猫数组,一个用于 x 轴,一个中值收入行数组,对应于第二个数组,该数组是构成分位数的中值房屋值行数组
提前致谢。
解决方案
IIUC - 只需过滤您的主数据集,因为您有一个布尔索引:housing["median_house_value"] > quantile
.
# REQUIRED THRESHOLD
quantile = int(round(housing["median_house_value"].quantile(q=0.95)))
# FILTER BY BOOLEAN
upper_housing = housing[housing["median_house_value"] > quantile]
# PLOTTING
housing.plot(kind="scatter", x="median_income", y="median_house_value", alpha=0.1, c='blue')
upper_housing.plot(kind="scatter", x="median_income", y="median_house_value", alpha=0.1, c='red')
plt.show()
推荐阅读
- python - Tensorflow 2.0中`Tensor.grad`的等效语法是什么
- reactjs - 等待状态在同一个函数中改变?
- c++ - cin >> 命令由于某种原因不起作用
- python - 使用 ThreadPoolExecutor 优雅地退出
- javascript - Spring Boot注释@CrossOrigin没有停止CORS错误
- javascript - 如何在 Javascipt 中对数组对象求和
- swift - AdMob 中介:未填写广告请求
- aurelia - 为 aurelia-slickgrid 导入 excel-export
- javascript - useState 不适用于材料 ui 功能组件(firebase)
- php - 在 laravel 的引导模式中动态显示数据