Прежде всего, я немного обеспокоен тем, что вы сказали, что используете петли с пандами ... НИКОГДА не используйте петли с пандами, они не предназначены для этого и чрезвычайно медленны и неэффективны. Есть действительно редкие случаи, когда вы не можете избежать этого, но даже тогда есть варианты, чтобы оптимизировать его лучше.
Чтобы ответить на ваш вопрос, сначала необходимо преобразовать DocDate в формат datetime:
from datetime import datetime
df.DocDate = df.DocDate.apply(lambda d: datetime.strptime(d, %Y-%m-%d))
Затем вы можете использовать функцию datetimeIndex.resample
, которая работает точно так же, как сгруппированные, но позволяет группировать данные по временному ограничению:
df = df.set_index('DocDate').resample('2W').Amount.sum()
resample('2W')
здесь означает группирование по 2-недельным периодам.