首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用切好的熊猫分成三组

用切好的熊猫分成三组
EN

Stack Overflow用户
提问于 2019-12-26 07:45:49
回答 1查看 132关注 0票数 1

我有一个数字范围从1到3的df。

代码语言:javascript
复制
Pclass

3
2
2
1
1
2

我想把它们分成两组:

二等= 3-2

头等舱=1

使用

代码语言:javascript
复制
cut_labels = [ "second class","first class"]

cut_points = [1,2,3]

df["Lux_normal"] = pd.cut(df["Pclass"], cut_points, labels=cut_labels

垃圾箱不正确,我怎么才能正确地把它们装好呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-26 07:49:55

我认为这里应该使用cut,但是稍微复杂一点,并且将12以上的所有值替换为misisng值,如果只有1,2,3可能的值,那么fillna就会修复它。

首先更改cut_labels列表中的顺序,然后为左闭间隔添加right=False,然后用second class替换缺失的值

代码语言:javascript
复制
cut_labels = ["first class", "second class"]
cut_points = [1,2,3]

df["Lux_normal"] = pd.cut(df["Pclass"], 
                          cut_points, 
                          labels=cut_labels, 
                          right=False).fillna('second class')

但是更好的是,这里应该使用Series.map来替换为字典值,如果没有匹配值,那么可以再次用fillna替换这些值:

代码语言:javascript
复制
d = {1: "first class", 2:'second class', 3:'second class'}
df["Lux_normal1"] = df["Pclass"].map(d).fillna('another class')
print (df)
   Pclass    Lux_normal   Lux_normal1
0       3  second class  second class
1       2  second class  second class
2       2  second class  second class
3       1   first class   first class
4       1   first class   first class
5       2  second class  second class
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59485424

复制
相关文章

相似问题

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