熊猫取代了dict问题

时间:2016-07-13 06:51:11

标签: python pandas replace

我正在通过大型系列的dict进行更换(3M记录约)。字典大小约为11k:

data['TOBE'] = data['ASIS'].replace(zdict)

需要一段时间,然后我得到类型不匹配的错误:

TypeError: Cannot compare types 'ndarray(dtype=object)' and 'str'

我检查了字典:

set([str(type(key)) for key in zdict.keys()])

给出:

{"<class 'str'>"}

然后检查了系列数据:

set([str(type(val)) for val in data['ASIS']])

给出:

{"<class 'str'>"}

我试图替换块,例如:

data['ASIS'][:1500000].replace(zdict)
data['ASIS'][1500000:].replace(zdict)

并没有错误......

所以现在我无法理解为什么我在整个范围内得到这个奇怪的错误,但是不要把它放在覆盖所有范围的块上。

2 个答案:

答案 0 :(得分:1)

我看到你要替换的是一个zdict数据。如果这代表this Python框架,那么您是否会考虑尝试用字符串格式替换虚拟数据而不是zdict数据。如果可以,那么框架本身可能存在大量数据的错误。

答案 1 :(得分:0)

所以我唯一的假设就是内存问题不足,而且没有异常处理。

我正在考虑它,因为在更换时我得到~98%的RAM使用率。我只有8 GB。

块方法似乎有效。