AttributeError:“ int”对象没有属性“ map”

时间:2020-10-02 13:42:42

标签: python pandas function dataframe

我具有以下定义的功能:

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'})

它运作完美!

除了语法之外,无法理解这两种方法的区别。

1 个答案:

答案 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)