Почему pandas.date_range () так медленно генерирует месяцы? - PullRequest
0 голосов
/ 03 июля 2018

Простое наблюдение:

>>> 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 миллисекунд. С другой стороны, для генерации дней (около 43 тыс.) В том же диапазоне требуется в 250 раз меньше

Мне нужно начало месяца, и это слишком медленно для меня. Можно ли оптимизировать мой код?

Тесты производительности выполняются на macOS x86-64 с Pandas 0.23.1 и дают аналогичные результаты на Linux x86-64.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...