2014-11-04 91 views
1

.astype(str)是将一系列整数转换为一系列字符串的最有效方法吗?这似乎相当缓慢,所以我想问。将大熊猫系列整数转换为字符串的最有效方法?

+0

这使用一个内部例程是nansafe。但是,空检查是相当便宜的,所以这有一个快速路径(如果没有空值)是有意义的。问题在这里:https://github.com/pydata/pandas/issues/8732 – Jeff 2014-11-04 22:08:15

回答

2

我尝试了一些东西,找到了更快的方法使用numpy的:

setup = """ 
import pandas, numpy 
s = pandas.Series(numpy.random.randint(1,10,(100))) 
""" 

>>> timeit.timeit('s.astype(str)', setup=setup, number=10000) 
3.33058500289917 
>>> timeit.timeit('s.apply(str)', setup=setup, number=10000) 
3.572000026702881 
>>> timeit.timeit('s.apply(lambda x: str(x))', setup=setup, number=10000) 
3.821247100830078 
>>> timeit.timeit('s.values.astype(numpy.str)', setup=setup, number=10000) 
0.08432412147521973 

正如你所看到的,accesing的numpy的阵列values,并使用astype调用比下一个最快的方法快了40倍。

相关问题