Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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使用字典将numpy列的值映射到另一列_Python_Numpy_Dictionary - Fatal编程技术网

Python使用字典将numpy列的值映射到另一列

Python使用字典将numpy列的值映射到另一列,python,numpy,dictionary,Python,Numpy,Dictionary,我有一个小的语法问题,我不知道如何解决。我有一本字典,上面有这样一些值: tenancyMap = { "256": 13, "512": 6, "1024": 3, "2048": 1 } 然后我有一个Numpy数据框,其中有一列名为“memory”。内存只能有256、512、1024或2048的值。我想在数据框中创建一个名为“MaxTena

我有一个小的语法问题,我不知道如何解决。我有一本字典,上面有这样一些值:

tenancyMap = {
        "256": 13,
        "512": 6,
        "1024": 3,
        "2048": 1
    }
然后我有一个Numpy数据框,其中有一列名为“memory”。内存只能有256、512、1024或2048的值。我想在数据框中创建一个名为“MaxTenants”的新列,将“memory”列中的每个值映射到TenancMap字典中的正确值

我试着这样做:

sourceAll['maxTenants'] = tenancyMap[str(sourceAll['memory'])]
但这不是有效的语法。当我遇到这个错误时:

f"{repr(type(self).__name__)} objects are mutable, "
TypeError: 'Series' objects are mutable, thus they cannot be hashed

有没有什么干净的方法可以做到这一点,而不必遍历数据帧上的每一行?

sourceAll['maxtrants']=[tenancyMap[str(i)]for i in sourceAll['memory']]
?我们是在谈论numpy阵列还是熊猫系列?对于系列:
sourceAll['maxtrants']=sourceAll['memory'].astype(str).map(tenancyMap)
Numpy数据帧??
dict
一次只能索引一个键<代码>租户映射[“512”]。一般来说,
dict
不能很好地与
numpy
配合使用,甚至不能与
pandas
配合使用。您试图执行的映射一次只能执行一个元素。@hpaulj公平地说,Numpy的结构化数组与Pandas数据帧非常相似。另一方面,我认为Pandas的
.map
非常有效。使用
dict
@QuangHoang,看起来像
Series.map
dict
转换为更专业、更快的其他结构。我还没有用它来计时。