Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ';str';对象没有属性';地图';_Python_Python 3.x_Pandas - Fatal编程技术网

Python ';str';对象没有属性';地图';

Python ';str';对象没有属性';地图';,python,python-3.x,pandas,Python,Python 3.x,Pandas,我想用1替换汽油,用0替换柴油,但无法做到这一点,出现以下错误: AttributeError:str对象没有属性map 代码: 试试这个:- carprice['fueltype']=carprice['fueltype'].map({'gas':1,'diesel':0}) 或者你可以 carprice['fueltype']=carprice['fueltype'].apply(lambda x: 1 if x =='gas' else 0)) Map基本上在系列上运行,而apply在

我想用
1
替换汽油,用
0
替换柴油,但无法做到这一点,出现以下错误:

AttributeError:
str
对象没有属性
map

代码:

试试这个:-

carprice['fueltype']=carprice['fueltype'].map({'gas':1,'diesel':0})
或者你可以

carprice['fueltype']=carprice['fueltype'].apply(lambda x: 1 if x =='gas' else 0))
Map基本上在系列上运行,而apply在每个单元格上运行

如果列是数据帧类型而不是序列,则带有in“apply”的Map函数可以正常工作。 若要将列从series转换为dataframe,请在“[]”中将其括起来

carprice[['fueltype']]=carprice[['fueltype']].apply(lambda x: x.map({'gas':1,'diesel':0}))
用于将序列中的每个值替换为另一个值,该值可以从函数、dict或序列中派生

但是,当您应用lambda函数并尝试映射列的值时,它将其作为字符串而不是序列

因此,要把它看作系列,你必须把柱子包围在下面的方括号中:

carprice['fueltype'] = carprice['fueltype'] \
                       .apply(lambda x: x.map({'gas':1,'diesel':0}))
或者,您可以在不使用lambda函数的情况下按如下方式使用它:

varlist =  ['fueltype']
    def binary_map(x):
        return x.map({'gas':1,'diesel':0})
carprice[varlist] = carprice[varlist].apply(binary_map)
这两种方法都非常有效

唯一需要注意的是,我们应该将一个系列传递给map函数。

您可以这样做

df['Response']=df['Response'].应用(λx:1如果x=='Yes'或x=='Yes'否则为0如果x=='No'或x=='No'否则为0.5))


df['Response']=df['Response'].map({'Yes':1,'No':0,'Maybe':0.5,'Yes':1,'No':0,'Maybe':0.5})

如何使其不区分大小写,就像某些行中的'fueltype'可能是'Gas'或'Diesel'
carprice['fueltype'] = carprice['fueltype'] \
                       .apply(lambda x: x.map({'gas':1,'diesel':0}))
varlist =  ['fueltype']
    def binary_map(x):
        return x.map({'gas':1,'diesel':0})
carprice[varlist] = carprice[varlist].apply(binary_map)