<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def as_dataframe(self, pattern='*', max_rows=None):
 """Creates a pandas dataframe from the groups that match the filters. Args: pattern: An optional pattern to further filter the groups. This can include Unix shell-style wildcards. E.g. ``"Production *"``, ``"*-backend"``. max_rows: The maximum number of groups to return. If None, return all. Returns: A pandas dataframe containing matching groups. """

    data = []
    for i, group in enumerate(self.list(pattern)):
      if max_rows is not None and i >= max_rows:
        break
      parent = self._group_dict.get(group.parent_id)
      parent_display_name = '' if parent is None else parent.display_name
      data.append([
          group.id, group.display_name, group.parent_id,
          parent_display_name, group.is_cluster, group.filter])

    return pandas.DataFrame(data, columns=self._DISPLAY_HEADERS)