Pandas 将 pd.cut 中的元组值替换为整数

Pandas replace tuple like value from pd.cut with a integer

我有一个如下所示的数据框

  count
  (1.386, 3.045]
  (1.386, 3.045]
  (0.692, 1.386]
  (1.386, 3.045]
  (1.386, 3.045]
  (1.386, 3.045]
  (1.386, 3.045]
  (0.692, 1.386]

我想为每个间隔创建标签

上面的数据框是 pd.cut 如下函数的结果

pd.cut(t['count'],bins=p_breaks,labels=[1,2,3,4,5],include_lowest=True,duplicates='drop')

但它导致了一个错误

所以,我删除了 labels 参数,得到了如下所示的输出

  (1.386, 3.045]
  (1.386, 3.045]
  (0.692, 1.386]
  (1.386, 3.045]
  (1.386, 3.045]
  (1.386, 3.045]
  (1.386, 3.045]
  (0.692, 1.386]

现在,我想更换这些物品。所以,我尝试了以下

t['count'].replace((0.692, 1.386),1)
t['count'].replace((1.386, 3.045),2)

我希望我的输出如下所示

count
2
2
1
2
2
2
2
1

不需要使用replace,可以使用.cat.codes获取分配给对应区间的序数值

t['count'] = pd.cut(t['count'], bins=p_breaks, duplicates='drop', include_lowest=True).cat.codes + 1