将pandas系列整数转换为字符串的最有效方法?

时间:2014-11-04 20:25:28

标签: python string pandas series

.astype(str)是将一系列int转换为一系列字符串的最有效方法吗?这似乎很慢,所以我想问。

1 个答案:

答案 0 :(得分: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

如您所见,使用values并使用astype调用访问numpy数组的速度比下一个最快的方法快40倍。