使用大熊猫剪切功能时未达到预期效果

问题描述 投票:0回答:1

我想使用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]

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

python pandas
1个回答
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

它对我来说是正常的。

© www.soinside.com 2019 - 2024. All rights reserved.