У меня есть следующий кадр данных >
Код: Выделить всё
df = pd.DataFrame({
'names': ['joe', 'joe', 'joe'],
'dates': [dt.datetime(2019,6,1), dt.datetime(2019,6,5), dt.datetime(2019,7,1)],
'start_date': dt.datetime(2019,5,1),
'end_date': dt.datetime(2019,7,5),
'values': [5,2,13]
})
names dates start_date end_date values
0 joe 2019-06-01 2019-05-01 2019-07-05 5
1 joe 2019-06-05 2019-05-01 2019-07-05 2
2 joe 2019-07-01 2019-05-01 2019-07-05 13
Мне удалось добиться желаемого результата, используя следующий обходной путь
Код: Выделить всё
temp_df = pd.DataFrame({
'dates': [df.start_date.tolist()[0], dt.end_date.tolist()[0]],
'names': df.names.tolist()[0],
'values': 0
})
concat_df = pd.concat([df, temp_df], axis=0, sort=True)
concat_df.set_index('dates').groupby('names').resample('7D').sum()
Код: Выделить всё
values
names dates
joe 2019-05-01 0
2019-05-08 0
2019-05-15 0
2019-05-22 0
2019-05-29 5
2019-06-05 2
2019-06-12 0
2019-06-19 0
2019-06-26 13
2019-07-03 0
Я почти уверен, что есть лучшие способы достижения что. У вас есть предложения?
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/573 ... ate-ranges