用大熊猫切成两半

用户名

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

Pclass

3
2
2
1
1
2

我想将它们分为2组:

第二类= 3-2
第一类= 1

cut_labels = [ "second class","first class"]

cut_points = [1,2,3]

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

垃圾箱不正确,我如何正确将它们分类?

耶斯列尔

我认为cut应该在这里使用它,但是有点复杂,并且还要替换1上面和下面的所有值2以误判值,如果只有1,2,3可能的值可以fillna修复它。

cut_labels列表中的第一个变更单,并添加right=False左封闭间隔,并将缺失值替换为second class

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再次用这些值替换

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章