在对熊猫使用cut功能时未达到预期的结果

时间:2019-03-22 22:39:03

标签: python pandas

我想使用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中的数据具有错误的标签,原因是当我运行没有标签属性的代码时,我得到了:

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]

这意味着它已经被很好地分类。

1 个答案:

答案 0 :(得分:0)

运行代码时,我得到以下信息:

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

它对我来说正常工作。