code: def _resolved_type(self):
          
          import datetime
  
          self.type_ratios = {test: (float(self.type_counts[test]) / float(self.count)) if self.count else None
                              for test, testf in tests + [(None, None)]}
  
          # If it is more than 5% str, it's a str
  
          try:
              if self.type_ratios.get(text_type,0) + self.type_ratios.get(binary_type,0) > .05:
                  if self.type_counts[text_type] > 0:
                      return text_type, False
  
                  elif self.type_counts[binary_type] > 0:
                      return binary_type, False
          except TypeError as e:
              # This is probably the result of the type being unknown
              pass
  
  
          if self.type_counts[datetime.datetime] > 0:
              num_type = datetime.datetime
  
          elif self.type_counts[datetime.date] > 0:
              num_type = datetime.date
  
          elif self.type_counts[datetime.time] > 0:
              num_type = datetime.time
  
          elif self.type_counts[float] > 0:
              num_type = float
  
          elif self.type_counts[int] > 0:
              num_type = int
  
          elif self.type_counts[text_type] > 0:
              num_type = text_type
  
          elif self.type_counts[binary_type] > 0:
              num_type = binary_type
  
          else:
              num_type = unknown
  
          if self.type_counts[binary_type] > 0 and num_type != binary_type:
              has_codes = True
          else:
              has_codes = False
  
          return num_type, has_codes
docs: Return the type for the columns, and a flag to indicate that the
          column has codes.