Это добавит дополнительную дату к вашему фрейму данных.
import pandas as pd
import datetime as dt
ddict = {
'Date': ['2014-12-29','2014-12-30','2014-12-31','','','','',]
}
data = pd.DataFrame(ddict)
data['Date'] = pd.to_datetime(data['Date'])
def fill_dates(data_frame, date_col='Date'):
### Seconds in a day (3600 seconds per hour x 24 hours per day)
day_s = 3600 * 24
### Create datetime variable for adding 1 day
_day = dt.timedelta(seconds=day_s)
### Get the max non-null date
max_dt = data_frame[date_col].max()
### Get index of missing date values
NaT_index = data_frame[data_frame[date_col].isnull()].index
### Loop through index; Set incremental date value; Increment variable by 1 day
for i in NaT_index:
data_frame[date_col][i] = max_dt + _day
_day += dt.timedelta(seconds=day_s)
### Execute function
fill_dates(data, 'Date')
Исходный кадр данных:
Date
0 2014-12-29
1 2014-12-30
2 2014-12-31
3 NaT
4 NaT
5 NaT
6 NaT
После запуска функции:
Date
0 2014-12-29
1 2014-12-30
2 2014-12-31
3 2015-01-01
4 2015-01-02
5 2015-01-03
6 2015-01-04
Мы протестировали оба и нашли, что Enyim выполнил лучшее для нашего ожидаемого сценария использования: многие (но не миллионы) кэшируемые объекты и миллионы кэша - получают запросы (средняя загрузка параллелизма веб-сайта = 16-20 запросов.)
Наш показатель производительности измерял время от выполнения запроса к инициализации объекта в памяти на сервере вызова. Обе библиотеки выдержали бы задание, но enyim клиент был предпочтен в нашем тестировании.
Я нашел, что Enyim работает лучше всего. Он прост в использовании, надежен и быстр:)