Summarizing data by week
Dan Bishop
danb_83 at yahoo.com
Tue Jan 9 22:39:22 EST 2007
On Jan 9, 1:57 pm, "Mike Orr" <sluggos... at gmail.com> wrote:
> What's the best way to summarize data by week? I have a set of
> timestamped records, and I want a report with one row for each week in
> the time period, including zero rows if there are weeks with no
> activity. I was planning to use ISO weeks because datetime has a
> convenient .isocalendar() method, but I want each output row to have a
> label like this:
>
> 2006 week 5 (Feb)
>
> However, to get the month (of the Thursday of that week) I have to
> convert it back to an actual date,and I don't see a method to do that
> in datetime or dateutil or mx.DateTime.
>
> I was planning to use a dateutil.rrule to generate the weeks from the
> minimum to maximum date, including any weeks that have no activity (so
> they won't be in the dictionary). But rrule sequences are based on an
> actual start date, not an ISO week, so that won't work. Unless perhaps
> I take the minimum date and calculate the Thursday of that week, and
> start from there. Then all my conversions would be to iso_week rather
> than from iso_week.
That would work. The first Thursday of the year can be computed as:
def first_thursday(year):
jan1 = datetime.date(year, 1, 1)
return jan1 + datetime.timedelta((3 - jan1.weekday()) % 7)
More information about the Python-list
mailing list