将整数的pandas系列高效转换为字符串的最佳方法?
使用 .astype(str) 是把一系列整数转换成字符串的最有效方法吗?我觉得这个方法有点慢,所以想问问大家。
1 个回答
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
来访问numpy数组,并调用astype
的方法,比第二快的方法快了超过40倍。