python中的映射错误

python中的映射错误,python,mapping,Python,Mapping,Python3.x 在上面的程序中,我试图将目标值映射到iris数据集中的目标名称。但在Python中,它总是返回类似于0x000000001466DD68处的map对象的东西map是一个生成器。要将其转换为列表,只需更改 def mapTarget(target): if target == 0: return 'setosa' if target == 1: return 'versicolor' if target == 2 :

Python3.x
在上面的程序中,我试图将目标值映射到iris数据集中的目标名称。但在Python中,它总是返回类似于0x000000001466DD68处的map对象的东西map是一个生成器。要将其转换为列表,只需更改

def mapTarget(target):
    if target == 0:
        return 'setosa'
    if target == 1:
        return 'versicolor'
    if target == 2 :
        return 'virgincia'



ir = load_iris()
df = pd.DataFrame(ir['data'], columns = ir['feature_names'])
df['target'] = ir['target']
df['target_name'] = map(mapTarget,df['target'])
print(df)
df['target_name'] = list(map(mapTarget,df['target']))


在Python中,map是一个生成器。要将其转换为列表,只需更改

def mapTarget(target):
    if target == 0:
        return 'setosa'
    if target == 1:
        return 'versicolor'
    if target == 2 :
        return 'virgincia'



ir = load_iris()
df = pd.DataFrame(ir['data'], columns = ir['feature_names'])
df['target'] = ir['target']
df['target_name'] = map(mapTarget,df['target'])
print(df)
df['target_name'] = list(map(mapTarget,df['target']))


在Python3中,
map
函数返回一个iterable。这意味着它更加轻量级,并且仍然允许您遍历对象

如果要将其转换为列表,可以调用
list
函数。这很容易。你只要换一行就行了


但是,如果您只希望遍历映射而不将其打印出来,那么最好将其保留为映射对象,因为这样会更快更干净。

在Python 3中,
map
函数返回一个iterable。这意味着它更加轻量级,并且仍然允许您遍历对象

如果要将其转换为列表,可以调用
list
函数。这很容易。你只要换一行就行了


但是,如果您只希望遍历映射而不将其打印出来,那么最好将其保留为映射对象,因为这样会更快更干净。

在Python-3.x中,
map
不是直接计算的,而是惰性地完成的。您最好使用
df['target\u name']=df['target']]。例如,应用(mapTarget)
您是否尝试过
df['target\u name']=list(map(mapTarget,df['target'])
您还需要输入python版本,并在这一行之后打印df是什么
df=pd.DataFrame(ir['data'],columns=ir['feature\u name'])
。在python-3.x中,
map
不是直接计算的,而是惰性地完成的。你最好使用
df['target\u name']=df['target']。例如,应用(mapTarget)
。你有没有尝试过
df['target\u name']=list(map(mapTarget,df['target'])
你还需要把你的python版本放进去,并在这行后面打印你的df
df=pd.DataFrame(ir['data'],columns=ir['feature\u name'))
。谢谢你@Daniel。我明白了。这是一个简单的数据结构。如果这回答了您的问题,请接受作为答案。否则,您还有其他错误吗?
map
不是生成器,而是迭代器。谢谢@Daniel。我明白了。这是一个简单的数据结构。如果这回答了您的问题,请接受作为答案。否则,您还有其他错误吗?
map
不是生成器,而是迭代器。
df['target_name'] = list(map(mapTarget,df['target']))