class_docstr: Represents a grouped dataset created by calling ``Dataset.groupby()``.
  
  The actual groupby is deferred until an aggregation is applied.
class_docstr_tok: ["Represents","a","grouped","dataset","created","by","calling","``","Dataset.groupby","(",")","``",".","The","actual","groupby","is","deferred","until","an","aggregation","is","applied","."]
docstr: Compute grouped mean aggregation.
  
  Examples:
      >>> import ray
      >>> ray.data.le(100).groupby("value").mean() # doctest: +SKIP
      >>> ray.data.from_items([ # doctest: +SKIP
      ...     {"A": i % 3, "B": i, "C": i**2} # doctest: +SKIP
      ...     for i in range(100)]) \ # doctest: +SKIP
      ...     .groupby("A") \ # doctest: +SKIP
      ...     .mean(["B", "C"]) # doctest: +SKIP
  
  Args:
      on: a column name or a list of column names to aggregate.
      ignore_nulls: Whether to ignore null values. If ``True``, null
          values will be ignored when computing the mean; if ``False``,
          if a null value is encountered, the output will be null.
          We consider np.nan, None, and pd.NaT to be null values.
          Default is ``True``.
  
  Returns:
      The mean result.
  
      For different values of ``on``, the return varies:
  
      - ``on=None``: a dataset containing a groupby key column,
        ``"k"``, and a column-wise mean column for each original column
        in the dataset.
      - ``on=["col_1", ..., "col_n"]``: a dataset of ``n + 1``
        columns where the first column is the groupby key and the second
        through ``n + 1`` columns are the results of the aggregations.
  
      If groupby key is ``None`` then the key part of return is omitted.
docstr_tok: ["Compute","grouped","mean","aggregation",".","Examples",":",">",">",">","import","ray",">",">",">","ray.data.le","(","100",")",".groupby","(","``","value","''",")",".mean","(",")","#","doctest",":","+SKIP",">",">",">","ray.data.from_items","(","[","#","doctest",":","+SKIP","...","{","``","A","''",":","i","%","3",",","``","B","''",":","i",",","``","C","''",":","i","*","*","2","}","#","doctest",":","+SKIP","...","for","i","in","range","(","100",")","]",")","\\","#","doctest",":","+SKIP","...",".groupby","(","``","A","''",")","\\","#","doctest",":","+SKIP","...",".mean","(","[","``","B","''",",","``","C","''","]",")","#","doctest",":","+SKIP","Args",":","on",":","a","column","name","or","a","list","of","column","names","to","aggregate",".","ignore_nulls",":","Whether","to","ignore","null","values",".","If","``","True","``",",","null","values","will","be","ignored","when","computing","the","mean",";","if","``","False","``",",","if","a","null","value","is","encountered",",","the","output","will","be","null",".","We","consider","np.nan",",","None",",","and","pd.NaT","to","be","null","values",".","Default","is","``","True","``",".","Returns",":","The","mean","result",".","For","different","values","of","``","on","``",",","the","return","varies",":","-","``","on=None","``",":","a","dataset","containing","a","groupby","key","column",",","``","``","k","''","``",",","and","a","column-wise","mean","column","for","each","original","column","in","the","dataset",".","-","``","on=","[","``","col_1","''",",","...",",","``","col_n","''","]","``",":","a","dataset","of","``","n","+","1","``","columns","where","the","first","column","is","the","groupby","key","and","the","second","through","``","n","+","1","``","columns","are","the","results","of","the","aggregations",".","If","groupby","key","is","``","None","``","then","the","key","part","of","return","is","omitted","."]
code: def mean(
      self, on: Union[str, List[str]] = None, ignore_nulls: bool = True
  ) -> Dataset:
      """Compute grouped mean aggregation.
  
      Examples:
          >>> import ray
          >>> ray.data.le(100).groupby("value").mean() # doctest: +SKIP
          >>> ray.data.from_items([ # doctest: +SKIP
          ...     {"A": i % 3, "B": i, "C": i**2} # doctest: +SKIP
          ...     for i in range(100)]) \ # doctest: +SKIP
          ...     .groupby("A") \ # doctest: +SKIP
          ...     .mean(["B", "C"]) # doctest: +SKIP
  
      Args:
          on: a column name or a list of column names to aggregate.
          ignore_nulls: Whether to ignore null values. If ``True``, null
              values will be ignored when computing the mean; if ``False``,
              if a null value is encountered, the output will be null.
              We consider np.nan, None, and pd.NaT to be null values.
              Default is ``True``.
  
      Returns:
          The mean result.
  
          For different values of ``on``, the return varies:
  
          - ``on=None``: a dataset containing a groupby key column,
            ``"k"``, and a column-wise mean column for each original column
            in the dataset.
          - ``on=["col_1", ..., "col_n"]``: a dataset of ``n + 1``
            columns where the first column is the groupby key and the second
            through ``n + 1`` columns are the results of the aggregations.
  
          If groupby key is ``None`` then the key part of return is omitted.
      """
      return self._aggregate_on(Mean, on, ignore_nulls)
  
imports: from typing import Any, Dict, Iterable, List, Optional, Tuple, Union
  from ._internal.table_block import TableBlockAccessor
  from ray.data._internal import sort
  from ray.data._internal.compute import ComputeStrategy
  from ray.data._internal.delegating_block_builder import DelegatingBlockBuilder
  from ray.data._internal.execution.interfaces import TaskContext
  from ray.data._internal.logical.interfaces import LogicalPlan
  from ray.data._internal.logical.operators.all_to_all_operator import Aggregate
  from ray.data._internal.plan import AllToAllStage
  from ray.data._internal.push_based_shuffle import PushBasedShufflePlan
  from ray.data._internal.shuffle import ShuffleOp, SimpleShufflePlan
  from ray.data._internal.sort import SortKey
  from ray.data.aggregate import AggregateFn, Count, Max, Mean, Min, Std, Sum
  from ray.data.aggregate._aggregate import _AggregateOnKeyBase
  from ray.data.block import Block, BlockAccessor, BlockExecStats, BlockMetadata, KeyType, UserDefinedFunction
  from ray.data.context import DataContext
  from ray.data.dataset import DataBatch, Dataset
  from ray.util.annotations import PublicAPI
label_desc: Use image node_id 10 for calling the GroupedData obj's underlying member method code with example usage: obj.mean(on, ignore_nulls) and returns: self