从 pandas 的值序列创建 pandas 区间序列

3
我能找到的最接近的答案似乎太复杂了:如何在pandas中创建一个区间列? 如果我有一个像这样的pandas数据框:
+-------+
| Value |
+-------+
|     6 |
|    12 |
|    56 |
|    60 |
|   120 |
+-------+

我该如何将它变成这样?

+-------+-----------+
| Value | Interval  |
+-------+-----------+
|     6 |           |
|    12 | (6, 12]   |
|    56 | (12, 56]  |
|    60 | (56, 60]  |
|   120 | (60, 120] |
+-------+-----------+

(注:这是一个非常简化的例子,我的真正数据框很大,因此性能是一个问题。)

1个回答

3

pd.cut 默认使用 right=True,因此如果 'Value' 严格单调递增,则:

df['Interval'] = pd.cut(df.Value, bins=df.Value)
#   Value       Interval
#0      6            NaN
#1     12    (6.0, 12.0]
#2     56   (12.0, 56.0]
#3     60   (56.0, 60.0]
#4    120  (60.0, 120.0]

1
我不知道如何在组中使用它,但我会将其作为一个单独的问题进行提问。链接 - dumbledad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接