如何用 pandas 将花车柱装箱 [英] How to bin column of floats with pandas

查看:70
本文介绍了如何用 pandas 将花车柱装箱的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我将python 2.x升级到3.x之前,此代码一直有效. 我有一个包含3列ipk1,ipk2,ipk3列的df. 由浮点数0-4.0组成的ipk1,ipk2,ipk3, 我想将它们装进字符串.

This code was working until I upgrade my python 2.x to 3.x. I have a df consisting of 3 columns ipk1, ipk2, ipk3. ipk1, ipk2, ipk3 consisting of float numbers 0 - 4.0, I would like to bin them into string.

数据看起来像这样:

    ipk1    ipk2    ipk3    ipk4    ipk5    jk
0   3.25    3.31    3.31    3.31    3.34    P
1   3.37    3.33    3.36    3.33    3.41    P
2   3.41    3.47    3.59    3.55    3.60    P
3   3.23    3.10    3.05    2.98    2.97    L
4   3.24    3.40    3.22    3.23    3.25    L

在python 2.x上,此代码有效,但在将其升级到python 3后,它无效.还有其他方法可以将它装进字符串吗?我曾尝试使用它,但它也无济于事.

on python 2.x this code works but after I upgrade it into python 3 it isn't. Is there any other way to bin it into string ? I have tried using while it also not help anything.

train1.loc[train1['ipk1'] > 3.6, 'ipk1'] = 'A',
train1.loc[(train1['ipk1']>3.2) & (train1['ipk1']<=3.6),'ipk1']='B',
train1.loc[(train1['ipk1']>2.8) & (train1['ipk1']<=3.2),'ipk1']='C',
train1.loc[(train1['ipk1']>2.4) & (train1['ipk1']<=2.8),'ipk1']='D',
train1.loc[(train1['ipk1']>2.0) & (train1['ipk1']<=2.4),'ipk1']='E',
train1.loc[(train1['ipk1']>1.6) & (train1['ipk1']<=2.0),'ipk1']='F',
train1.loc[(train1['ipk1']>1.2) & (train1['ipk1']<=1.6),'ipk1']='G',
train1.loc[train1['ipk1'] <= 1.2, 'ipk1'] = 'H' 

我收到的错误:

TypeError: '>' not supported between instances of 'str' and 'float'

我的预期输出:

    ipk1    ipk2    ipk3    ipk4    ipk5    jk
0   B       3.31    3.31    3.31    3.34    P
1   B       3.33    3.36    3.33    3.41    P
2   B       3.47    3.59    3.55    3.60    P
3   B       3.10    3.05    2.98    2.97    L
4   B       3.40    3.22    3.23    3.25    L

推荐答案

这是 查看全文

登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆