我有一个数字从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] 删除。
我来说两句