【问题标题】:I want to alter bin ranges format in pandas我想更改熊猫中的 bin 范围格式
【发布时间】:2022-11-04 22:39:51
【问题描述】:

我有一个数据框,我正在使用 pd.qcut 创建 bin,如下所示:

us_counties['bins'] = pd.qcut(us_counties['economic connectedness'], q=10,precision=2)

垃圾箱是:

us_counties.bins.cat.categories
IntervalIndex([(0.27999999999999997, 0.58], (0.58, 0.67], (0.67, 0.72], (0.72, 0.76], (0.76, 0.81], (0.81, 0.85], (0.85, 0.9], (0.9, 0.97], (0.97, 1.06], (1.06, 1.36]], dtype='interval[float64, right]')

我想改变它们的格式,所以第一个 bin <0.58,中等的 0.67-0.72,最后一个 >1.06。

我设法使用以下命令制作了媒体格式:

us_counties.bins.cat.categories = [f'{i.left} - {i.right}' for i in us_counties.bins.cat.categories]

如何更改第一个和最后一个?

【问题讨论】:

  • 我不清楚:您是否只想制作 3 个垃圾箱 - 第一个、中等、最后一个?或者您是否尝试更改端点包含,例如 0.58] --> 0.58)?

标签: python pandas jupyter-notebook


【解决方案1】:

由于qcut 将数据点分配到大小相等的存储桶中,您可能无法使用qcut 执行此操作。以你的方式,这种平等将不会被维持。例如,qcut 包含 0.58,但您希望它是独占的。因此,您可以做的是创建一个函数和另一列,并使用 apply 函数为每一行分配一个 bin。然后,根据新的列,你可以在下一轮做任何你想做的事情。如果我正确理解您的情况,我可能会建议您这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多