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
我有一个如下所示的数据框
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