为什么pandas.date_range()生成月份这么慢?

时间:2018-07-03 12:05:55

标签: pandas

简单观察:

>>> timeit.timeit('''pd.date_range("1900-01-01", "2017-07-02", freq='H')''', 'import pandas as pd', number=1000)
3.4257616080285516
>>> timeit.timeit('''pd.date_range("1900-01-01", "2017-07-02", freq='MS')''', 'import pandas as pd', number=1000)
62.60253554501105
>>> timeit.timeit('''pd.date_range("1900-01-01", "2017-07-02", freq='D')''', 'import pandas as pd', number=1000)
0.24156528399907984
>>> timeit.timeit('''pd.date_range("1900-01-01", "2017-07-02", freq='M')''', 'import pandas as pd', number=1000)
67.81731529999524

为什么生成月份(M)或月份开始(MS)这么慢?在指定范围内大约有1400个月,并且在我的计算机上大约需要60毫秒来生成它们。另一方面,在相同范围内生成天(约43k)所需的时间要少250倍。

我需要开始月份,这对我来说太慢了。我的代码可以优化吗?

基准测试在带有Pandas 0.23.1的macOS x86-64上运行,并在Linux x86-64上获得相似的结果。

0 个答案:

没有答案