`进口熊猫 导入numpy
#importing the dataset
data=pandas.read_csv('gapminder.csv',low_memory=False)
#setting variables to be worked with to numeric
data['urbanrate']=data['urbanrate'].convert_objects(convert_numeric=True)
data['femaleemployrate']=data['femaleemployrate'].convert_objects(convert_numeric=True)
data['lifeexpectancy']=data['lifeexpectancy'].convert_objects(convert_numeric=True)
print("Count for urbanrate")
chk8=data['urbanrate'].value_counts(sort=False,dropna=False)
print(chk8)
sub1=data[['urbanrate','femaleemployrate','lifeexpectancy']]
print (sub1.head(25))
===========================================================================
def urban (row):
if (row['urbanrate']<25.0):
return 1
if (data[['urbanrate']>=25.0 & data['urbanrate']<75.0]):
return 2
if (data['urbanrate']>75.0):
return 3
sub1['urban']=sub1.apply(lambda row: urban (row),axis=1)
print (sub1.head(25))
============================================================================`
我想将urbanrate
的所有值(都是浮点数,比如24.56
,88.98
,77.65
)分为3个不同的类别(一个是<25
,另一个是>=25 and <75
,最后一个是>=75
),并将这些值存储在一个新变量中(比如urban)。我该怎么做?我已经给了我的密码。我执行了它,它给我的错误是:
TypeError: ('cannot compare a dtyped [float64] array with a scalar of type [bool]', 'occurred at index 1'))
请帮帮我
我想你可以用^{} :
使用3个面具:
您可以屏蔽符合布尔条件的行,并以矢量化的方式设置所有行,您尝试的操作失败的原因是:
^{pr2}$在这里,您试图将数组与标量值进行比较以生成标量布尔值,但这不会起作用,另外,尽管您使用了正确的运算符将条件括在括号中
()
:另外,您的函数不一致,您调用了
apply
并传递了axis=1
,这意味着您正在尝试对行值进行操作,而您的第一个条件没有问题:但是在随后的条件下,你测试的是整个{},这是完全不同的
如果您执行以下操作,它会起作用:
这里不需要按行操作,可以将整个列/系列作为参数传递给函数
相关问题 更多 >
编程相关推荐