title: group data by season according to the exact dates
body: <p>i have a csv file containing 4 years of data and i am trying to group data per season over the 4 years , differently saying, i need to summarize and plot my whole data into 4 season only .
  here's a look on my data  file :</p>
  
  <pre><code>timestamp,heure,lat,lon,impact,type
  2006-01-01 00:00:00,13:58:43,33.837,-9.205,10.3,1
  2006-01-02 00:00:00,00:07:28,34.5293,-10.2384,17.7,1
  2007-02-01 00:00:00,23:01:03,35.0617,-1.435,-17.1,2
  2007-02-02 00:00:00,01:14:29,36.5685,0.9043,36.8,1
  2008-01-01 00:00:00,05:03:51,34.1919,-12.5061,-48.9,1
  2008-01-02 00:00:00,05:03:51,34.1919,-12.5061,-48.9,1
  ....
  2011-12-31 00:00:00,05:03:51,34.1919,-12.5061,-48.9,1
  </code></pre>
  
  <p>and here's my desired output :</p>
  
  <pre><code>winter     (the mean value of impacts)
  summer     (the mean value of impacts)
  autumn      ....
  spring      .....
  </code></pre>
  
  <p>Actually i've tried this code : </p>
  
  <pre><code>names =["timestamp","heure","lat","lon","impact","type"]
  data = pd.read_csv('flash.txt',names=names, parse_dates=['timestamp'],index_col=['timestamp'], dayfirst=True)
  
  spring = range(80, 172)
  summer = range(172, 264)
  fall = range(264, 355)
  
  def season(x):
      if x in spring:
         return 'Spring'
      if x in summer:
         return 'Summer'
      if x in fall:
         return 'Fall'
     else :
         return 'Winter'
  
   data['SEASON'] = data.index.to_series().dt.month.map(lambda x : season(x))
   data['impact'] = data['impact'].abs()
   seasonly = data.groupby('SEASON')['impact'].mean()
  </code></pre>
  
  <p>and i got this horrible result :
   <a href="https://i.stack.imgur.com/xXLmZ.png" rel="noreferrer"><img src="https://i.stack.imgur.com/xXLmZ.png" alt="enter image description here"></a></p>
  
  <p>where am i mistaken ?</p>