我具有以下定义的功能:
def season_map(x):
return x.map({1:'spring',2:'summer',3:'fall',4:'winter'})
现在在季节列上调用仅包含值1、2、3或4的函数:
bike_data['season'] = bike_data['season'].apply(season_map)
给出的错误是: AttributeError:“ int”对象没有属性“ map”
但是,如果我尝试:
bike_data['season'] = bike_data['season'].map({1:'spring',2:'summer',3:'fall',4:'winter'})
它运作完美!
除了语法之外,无法理解这两种方法的区别。
答案 0 :(得分:0)
map函数获取整数,但也具有一个map。可能只是复制粘贴错误。
尝试
def season_map(x):
return {1:'spring', 2:'summer', 3:'fall', 4:'winter'}[x]
或更简单
season_map = {1:'spring', 2:'summer', 3:'fall', 4:'winter'}
bike_data['season'] = bike_data['season'].map(season_map)