title: Need to retrieve latest 7 days coil activity for each system from coil failed date along with need to add rank based on system and Logdate in Python
body: <p>I have below dataset. I am trying to get latest 7 days data for each system from coil failed date and also I want to add rank based on system and coil failed date.</p>
  <div class="s-table-container">
  <table class="s-table">
  <thead>
  <tr>
  <th style="text-align: left;">sys_no</th>
  <th style="text-align: left;"></th>
  <th style="text-align: left;">log_date</th>
  <th style="text-align: left;"></th>
  <th style="text-align: left;">tot_norm_scans</th>
  <th style="text-align: left;"></th>
  <th style="text-align: left;">fail_reason</th>
  <th style="text-align: left;"></th>
  <th style="text-align: left;">tot_fail_scans</th>
  <th style="text-align: left;"></th>
  <th style="text-align: left;">case_num</th>
  <th style="text-align: left;"></th>
  <th style="text-align: left;">coil_fail_date</th>
  </tr>
  </thead>
  <tbody>
  <tr>
  <td style="text-align: left;">8343</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-12</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">12</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code001</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">23476</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-13</td>
  </tr>
  <tr>
  <td style="text-align: left;">8343</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-08</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code001</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">5</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">23477</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-13</td>
  </tr>
  <tr>
  <td style="text-align: left;">8343</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-08</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code003</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">3</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">25676</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-13</td>
  </tr>
  <tr>
  <td style="text-align: left;">8343</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-02</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">5</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">29476</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-13</td>
  </tr>
  <tr>
  <td style="text-align: left;">8346</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-01</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">45</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">23476</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-13</td>
  </tr>
  <tr>
  <td style="text-align: left;">8392</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2021-12-21</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">32</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code002</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">5</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">25489</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-12-24</td>
  </tr>
  <tr>
  <td style="text-align: left;">90081</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2021-12-01</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">27021</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-12-04</td>
  </tr>
  <tr>
  <td style="text-align: left;">20892</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2021-12-01</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code001</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">15</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">29546</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-12-02</td>
  </tr>
  <tr>
  <td style="text-align: left;">20892</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2021-12-01</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code002</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">12</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">29546</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-12-02</td>
  </tr>
  </tbody>
  </table>
  </div>
  <p>I am looking for last 7 days data for each system from coil failed date. we my have one or more coil failure(case_number). I need to retrieve data for each case_number in case we have more than one case_number. Also while selecting 7 days data, I want all failed reasons data to be also covered, example 2nd and 3rd row for same date we have 2 errors I want them to consider as is. Final data I am expecting to be like below</p>
  <div class="s-table-container">
  <table class="s-table">
  <thead>
  <tr>
  <th style="text-align: left;">sys_no</th>
  <th style="text-align: left;"></th>
  <th style="text-align: left;">log_date</th>
  <th style="text-align: left;"></th>
  <th style="text-align: left;">tot_norm_scans</th>
  <th style="text-align: left;"></th>
  <th style="text-align: left;">fail_reason</th>
  <th style="text-align: left;"></th>
  <th style="text-align: left;">tot_fail_scans</th>
  <th style="text-align: left;"></th>
  <th style="text-align: left;">case_num</th>
  <th style="text-align: left;"></th>
  <th style="text-align: left;">coil_fail_date</th>
  </tr>
  </thead>
  <tbody>
  <tr>
  <td style="text-align: left;">8343</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-12</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">12</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code001</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">23476</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-13</td>
  </tr>
  <tr>
  <td style="text-align: left;">8343</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-08</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code001</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">5</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">23477</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-13</td>
  </tr>
  <tr>
  <td style="text-align: left;">8343</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-08</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code003</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">3</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">25676</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-13</td>
  </tr>
  <tr>
  <td style="text-align: left;">8343</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-02-06</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">5</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">29476</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-13</td>
  </tr>
  <tr>
  <td style="text-align: left;">8346</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-04</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">45</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">23476</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-13</td>
  </tr>
  <tr>
  <td style="text-align: left;">8346</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-02</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">22</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">3</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">23476</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-13</td>
  </tr>
  <tr>
  <td style="text-align: left;">8346</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-01</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">12</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code003</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">23476</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-13</td>
  </tr>
  <tr>
  <td style="text-align: left;">8346</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-01</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">10</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code001</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">23476</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-01-13</td>
  </tr>
  <tr>
  <td style="text-align: left;">8392</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2021-12-22</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">32</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code002</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">5</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">25489</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-12-24</td>
  </tr>
  <tr>
  <td style="text-align: left;">8392</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2021-12-21</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">32</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code002</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">5</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">25489</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-12-24</td>
  </tr>
  <tr>
  <td style="text-align: left;">8392</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2021-12-20</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">32</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code002</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">5</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">25489</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-12-24</td>
  </tr>
  <tr>
  <td style="text-align: left;">8392</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2021-12-19</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">32</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code003</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">5</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">25489</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-12-24</td>
  </tr>
  <tr>
  <td style="text-align: left;">8392</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2021-12-19</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">32</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code002</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">5</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">25489</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-12-24</td>
  </tr>
  <tr>
  <td style="text-align: left;">8392</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2021-12-18</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">32</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code002</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">5</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">25489</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-12-24</td>
  </tr>
  <tr>
  <td style="text-align: left;">8392</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2021-12-17</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">32</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code002</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">5</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">25489</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-12-24</td>
  </tr>
  <tr>
  <td style="text-align: left;">8392</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2021-12-16</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">32</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">25489</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-12-24</td>
  </tr>
  <tr>
  <td style="text-align: left;">90081</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2021-12-01</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">27021</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-12-04</td>
  </tr>
  <tr>
  <td style="text-align: left;">20892</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2021-12-01</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code001</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">15</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">29546</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-12-02</td>
  </tr>
  <tr>
  <td style="text-align: left;">20892</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2021-12-01</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">0</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">code002</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">12</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">29546</td>
  <td style="text-align: left;"></td>
  <td style="text-align: left;">2022-12-02</td>
  </tr>
  </tbody>
  </table>
  </div>
  <p>I am looking for above data. 7 days latest data from coil failed data by considering failed reason column with respect SRN and log date.</p>
  <p>Along with above data I need a rank column that should rate by considering SRN only. rank should stay between 1 to 7 for each SRNs</p>
  <p>|rank|
  |....
  |7|
  |6|
  |6|
  |5|
  |4|
  |3|
  |2|
  |1|
  |1|
  |7|
  |6|
  |5|
  |4|
  |4|
  |3|
  |2|
  |1|
  |7|
  |7|
  |7|</p>
  <p>I tried below codes but it didn't provide what I am expecting.</p>
  <pre><code>df = df.sort_values('log_date',ascending = False).groupby(['sys_no']).head(7)
  df = .sort_values(by=['SRN','log_date'], ascending=False, ignore_index=True)
  
  list1 = []
  for srn in df['SRN'].unique().tolist():
      if len(df[df['SRN']== srn]) == 7:
          for num in range(7):
              list1.append((num+1))       
      elif len(df[df['SRN']== srn]) == 6:
           for num in range(6):
              list1.append((num+1)) 
      elif len(df[df['SRN']== srn]) == 5:
           for num in range(5):
              list1.append((num+1))
      elif len(df[df['SRN']== srn]) == 4:
           for num in range(4):
              list1.append((num+1))
      elif len(df[df['SRN']== srn]) == 3:
           for num in range(3):
              list1.append((num+1))
      elif len(df[df['SRN']== srn]) == 2:
           for num in range(2):
              list1.append((num+1))
      elif len(df[df['SRN']== srn]) == 1:
           for num in range(1):
              list1.append((num+1))
  list1
  
  df['rank'] = pd.Series(list1)
  </code></pre>
  <p>Above code gives latest 7 records instead of 7 days and ranking also with respect to record it took, it didn't consider rank per day as 1 instead it considers record length.</p>
  <p>How to get the data as explained above?</p>