我想使用cut函数将我的数据分为4个不同的类。我的代码中没有语法错误。但结果不是我的预期。
MACOS 10.14.1,python3
coor.x和coor.y是我想要使用cut函数分类和标记的列:
coor['xarea']=pd.cut(coor.x,[144.7,144.85,145,145.15,145.3,145.45],include_lowest=True,labels={'1','2','3','4','5'})
coor['yarea']=pd.cut(coor.y,[-38.1,-37.95,-37.8,-37.65,-37.5],include_lowest=True,labels={'1','2','3','4'})
预期的结果是:
x y xarea yarea
144.994667 -37.924948 2 2
144.987191 -37.924919 2 2
144.986557 -37.924911 2 2
144.987280 -37.924902 2 2
但真正的结果是:
x y xarea yarea
144.994667 -37.924948 2 3
144.987191 -37.924919 2 3
144.986557 -37.924911 2 3
144.987280 -37.924902 2 3
我不明白为什么y中的数据得到了错误的标签,因为当我运行没有labels属性的代码时,我得到了这个:
144.987191 -37.924919 2 (-37.95, -37.8]
144.986557 -37.924911 2 (-37.95, -37.8]
144.987280 -37.924902 2 (-37.95, -37.8]
这意味着它已被很好地分类。
当我运行你的代码时,我得到以下内容:
coor['xarea']=pd.cut(coor.x,[144.7,144.85,145,145.15,145.3,145.45],include_lowest=True,labels={'1','2','3','4','5'})
coor['yarea']=pd.cut(coor.y,[-38.1,-37.95,-37.8,-37.65,-37.5],include_lowest=True,labels={'1','2','3','4'})
print(coor)
x y xarea yarea
0 144.994667 -37.924948 2 2
1 144.987191 -37.924919 2 2
2 144.986557 -37.924911 2 2
3 144.987280 -37.924902 2 2
它对我来说是正常的。