为什么打印的数据都是H,整列都是H,大家指教一下

我有一个Dataframe数据,里面有一列是wd的数据,我想把里面对应的数据做划分,分为A~H级,自己写了一段代码,总是出错,求大家指点指点。

def func_wd(x):# 定义一个分级的函数
for x in data['wd']:
if x < 45.0:
return 'A'
elif x >= 45.0 and x < 90.0:
return 'B'
elif x >= 90.0 and x < 135.0:
return 'C'
elif x >= 135.0 and x < 180.0:
return 'D'
elif x >= 180.0 and x < 225.0:
return 'E'
elif x >= 225.0 and x < 270.0:
return 'F'
elif x >= 270.0 and x < 315.0:
return 'G'
else:
return 'H'
data['wd'] = data.applymap(func_wd)

小唯快跑啊
浏览 223回答 2
2回答

明月笑刀无情

方法用错了, 首先不能是DataFrame的applymap方法 这个方法是对每一个元素进行处理的其次, 处理函数(你的func_wd)是接受一个值, 返回一个值, 不是接受一堆值然后循环def func_wd(x) 这个x就是wd那一列中的某一个值, 里面直接分支返回就行了:在map这个方法的时候, 用Series的apply:data['wd'] = data['wd'].apply(fuc_wd)这样就行了

眼眸繁星

没用过Pandas,不过f函数里的for循环看着怪怪的,函数一旦return了,就结束了吧,不会再for循环了
打开App,查看更多内容
随时随地看视频慕课网APP