def group_by_month(self):
hourly_data_by_month = OrderedDict()<EOL>for d in xrange(<NUM_LIT:1>, <NUM_LIT>):<EOL><INDENT>hourly_data_by_month[d] = []<EOL><DEDENT>a_per = self.header.analysis_period<EOL>a_per_months = a_per.months_int<EOL>indx = <NUM_LIT> * a_per.timestep * abs(<EOL>a_per.st_day - <NUM_LIT:1> - a_per._num_of_days_each_month[a_per_months[<NUM_LIT:0>]-<NUM_LIT:1>])<EOL>hourly_data_by_month[a_per_months[<NUM_LIT:0>]] = self._values[<NUM_LIT:0>:indx + <NUM_LIT:1>]<EOL>if len(a_per_months) > <NUM_LIT:1>:<EOL><INDENT>for mon in a_per_months[<NUM_LIT:1>:]:<EOL><INDENT>interval = a_per._num_of_days_each_month[mon - <NUM_LIT:1>] * <NUM_LIT> * a_per.timestep<EOL>try:<EOL><INDENT>hourly_data_by_month[mon] = self._values[indx:indx + interval + <NUM_LIT:1>]<EOL><DEDENT>except IndexError:<EOL><INDENT>hourly_data_by_month[mon] = self._values[indx:]  <EOL><DEDENT>indx += interval<EOL><DEDENT><DEDENT>return hourly_data_by_month<EOL>
Return a dictionary of this collection's values grouped by each month.

        Key values are between 1-12.