首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫数量范围的分布

熊猫数量范围的分布
EN

Stack Overflow用户
提问于 2018-12-10 04:05:58
回答 1查看 432关注 0票数 0

我正在处理数字范围的分布,如0-1、2-3、4-6和>=7,我有以下数据框架

代码语言:javascript
复制
df = pd.DataFrame()
df['T1'] =[0,2,0,3,4,5,1]
df ['T2']= [1,2,3,0,2,3,3]
df['TT'] = df.T1+df.T2

我想要创建一个新的列,它将确定范围,我如下所写:

代码语言:javascript
复制
U0_1 = df ['TT']<=1
U2_3 = df ['TT']>1 & df ['TT']<=3
U4_6 = df ['TT']>3 & df ['TT']<=6
df ['TG'] = np.select([U0_1,U2_3,U4_6],['TG_0-1','TG_2-3','TG_4-6'],default = 'TG_7>=')

但它向我显示了以下错误:

代码语言:javascript
复制
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我能向你们大家征求意见吗?

谢谢,

泽普。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-10 04:09:08

你可以使用pd.cut,我认为这是解决这类问题的更好的方法

代码语言:javascript
复制
pd.cut(df.TT,[0,1,3,6,np.inf],labels=['TG_0-1','TG_2-3','TG_4-6','TG_7>='])
0    TG_0-1
1    TG_4-6
2    TG_2-3
3    TG_2-3
4    TG_4-6
5    TG_7>=
6    TG_4-6
Name: TT, dtype: category

要修复代码,请添加()

代码语言:javascript
复制
U0_1 = df ['TT']<=1
U2_3 = (df ['TT']>1) & (df ['TT']<=3)
U4_6 = (df ['TT']>3) & (df ['TT']<=6)
np.select([U0_1,U2_3,U4_6],['TG_0-1','TG_2-3','TG_4-6'],default = 'TG_7>=')
array(['TG_0-1', 'TG_4-6', 'TG_2-3', 'TG_2-3', 'TG_4-6', 'TG_7>=',
       'TG_4-6'], dtype='<U6')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53699371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档