Skip to content

DataFrame summaries API Reference

A class to launch pre-defined or custom summaries on a DataFrame.

Attributes:

Name Type Description
df DataFrame

the DataFrame to summarise

kwargs

DataFrameSummaryOpts keyword arguments.

Source code in metaframe/src/dataframe/summary/base.py
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
class Summary:
    """
    A class to launch pre-defined or custom summaries
    on a DataFrame.

    Attributes
    ----------
    df: DataFrame
        the DataFrame to summarise
    kwargs:
        DataFrameSummaryOpts keyword arguments.
    """

    def __init__(self, df: DataFrame, **kwargs) -> None:
        self.opts = DataFrameSummaryOpts(**kwargs)
        self.df = df

    def _summary(self, func: callable, **kwargs) -> DataFrame:
        """
        Prepare options and launch a specific summary.

        Default options can be replaced with kwargs.

        Parameters
        ----------
        func: callable
            a function taking self and a DataFrameSummaryOpts
            object as input and returning a DataFrame.
        kwargs
            DataFrameSummaryOpts keyword arguments.

        Returns
        -------
        DataFrame
        """
        return func(self.df, self._prepare_opts(**kwargs))

    def _prepare_opts(self, **kwargs) -> DataFrameSummaryOpts:
        """
        Prepare options before a function call.

        Update self.opts with kwargs and set label_self if it is None.

        Parameters
        ----------
        kwargs
            DataFrameSummaryOpts keyword arguments.

        Returns
        -------
        DataFrameSummaryOpts
        """
        opts = replace(self.opts, **kwargs)
        if opts.label_self is None:
            opts = replace(opts, label_self = "Table" if self.df.is_table else "DataFrame")
        return opts

    def summary(self, func: callable, **kwargs) -> DataFrame:
        """
        Launch a user-defined summary.

        Parameters
        ----------
        func: callable
            a function taking self and a DataFrameSummaryOpts
            object as input and returning a DataFrame.
        kwargs
            DataFrameSummaryOpts keyword arguments.
        """
        return self._summary(func, **kwargs)

    def row(self, **kwargs) -> DataFrame:
        """
        Launch a per-row summary.

        Parameters
        ----------
        kwargs
            DataFrameSummaryOpts keyword arguments.
        """
        return self._summary(per_axis, axis=0, **kwargs)

    def col(self, **kwargs) -> DataFrame:
        """
        Launch a per-col summary.

        Parameters
        ----------
        kwargs
            DataFrameSummaryOpts keyword arguments.
        """
        return self._summary(per_axis, axis=1, **kwargs)

    def per_axis(self, **kwargs) -> DataFrame:
        """
        Launch a per-row or per-columns summary.

        Parameters
        ----------
        kwargs
            DataFrameSummaryOpts keyword arguments.
        """
        return self._summary(per_axis, **kwargs)

    def whole(self, **kwargs) -> DataFrame:
        """
        Launch a whole DataFrame summary.

        Parameters
        ----------
        kwargs
            DataFrameSummaryOpts keyword arguments.
        """
        return self._summary(whole, **kwargs)

    def basic(self, **kwargs) -> DataFrame:
        """
        Launch a basic summary.

        Parameters
        ----------
        kwargs
            DataFrameSummaryOpts keyword arguments.
        """
        return self._summary(basic, **kwargs)

_summary(func, **kwargs)

Prepare options and launch a specific summary.

Default options can be replaced with kwargs.

Parameters:

Name Type Description Default
func callable

a function taking self and a DataFrameSummaryOpts object as input and returning a DataFrame.

required
kwargs

DataFrameSummaryOpts keyword arguments.

{}

Returns:

Type Description
DataFrame
Source code in metaframe/src/dataframe/summary/base.py
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
def _summary(self, func: callable, **kwargs) -> DataFrame:
    """
    Prepare options and launch a specific summary.

    Default options can be replaced with kwargs.

    Parameters
    ----------
    func: callable
        a function taking self and a DataFrameSummaryOpts
        object as input and returning a DataFrame.
    kwargs
        DataFrameSummaryOpts keyword arguments.

    Returns
    -------
    DataFrame
    """
    return func(self.df, self._prepare_opts(**kwargs))

_prepare_opts(**kwargs)

Prepare options before a function call.

Update self.opts with kwargs and set label_self if it is None.

Parameters:

Name Type Description Default
kwargs

DataFrameSummaryOpts keyword arguments.

{}

Returns:

Type Description
DataFrameSummaryOpts
Source code in metaframe/src/dataframe/summary/base.py
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
def _prepare_opts(self, **kwargs) -> DataFrameSummaryOpts:
    """
    Prepare options before a function call.

    Update self.opts with kwargs and set label_self if it is None.

    Parameters
    ----------
    kwargs
        DataFrameSummaryOpts keyword arguments.

    Returns
    -------
    DataFrameSummaryOpts
    """
    opts = replace(self.opts, **kwargs)
    if opts.label_self is None:
        opts = replace(opts, label_self = "Table" if self.df.is_table else "DataFrame")
    return opts

summary(func, **kwargs)

Launch a user-defined summary.

Parameters:

Name Type Description Default
func callable

a function taking self and a DataFrameSummaryOpts object as input and returning a DataFrame.

required
kwargs

DataFrameSummaryOpts keyword arguments.

{}
Source code in metaframe/src/dataframe/summary/base.py
64
65
66
67
68
69
70
71
72
73
74
75
76
def summary(self, func: callable, **kwargs) -> DataFrame:
    """
    Launch a user-defined summary.

    Parameters
    ----------
    func: callable
        a function taking self and a DataFrameSummaryOpts
        object as input and returning a DataFrame.
    kwargs
        DataFrameSummaryOpts keyword arguments.
    """
    return self._summary(func, **kwargs)

row(**kwargs)

Launch a per-row summary.

Parameters:

Name Type Description Default
kwargs

DataFrameSummaryOpts keyword arguments.

{}
Source code in metaframe/src/dataframe/summary/base.py
78
79
80
81
82
83
84
85
86
87
def row(self, **kwargs) -> DataFrame:
    """
    Launch a per-row summary.

    Parameters
    ----------
    kwargs
        DataFrameSummaryOpts keyword arguments.
    """
    return self._summary(per_axis, axis=0, **kwargs)

col(**kwargs)

Launch a per-col summary.

Parameters:

Name Type Description Default
kwargs

DataFrameSummaryOpts keyword arguments.

{}
Source code in metaframe/src/dataframe/summary/base.py
89
90
91
92
93
94
95
96
97
98
def col(self, **kwargs) -> DataFrame:
    """
    Launch a per-col summary.

    Parameters
    ----------
    kwargs
        DataFrameSummaryOpts keyword arguments.
    """
    return self._summary(per_axis, axis=1, **kwargs)

per_axis(**kwargs)

Launch a per-row or per-columns summary.

Parameters:

Name Type Description Default
kwargs

DataFrameSummaryOpts keyword arguments.

{}
Source code in metaframe/src/dataframe/summary/base.py
100
101
102
103
104
105
106
107
108
109
def per_axis(self, **kwargs) -> DataFrame:
    """
    Launch a per-row or per-columns summary.

    Parameters
    ----------
    kwargs
        DataFrameSummaryOpts keyword arguments.
    """
    return self._summary(per_axis, **kwargs)

whole(**kwargs)

Launch a whole DataFrame summary.

Parameters:

Name Type Description Default
kwargs

DataFrameSummaryOpts keyword arguments.

{}
Source code in metaframe/src/dataframe/summary/base.py
111
112
113
114
115
116
117
118
119
120
def whole(self, **kwargs) -> DataFrame:
    """
    Launch a whole DataFrame summary.

    Parameters
    ----------
    kwargs
        DataFrameSummaryOpts keyword arguments.
    """
    return self._summary(whole, **kwargs)

basic(**kwargs)

Launch a basic summary.

Parameters:

Name Type Description Default
kwargs

DataFrameSummaryOpts keyword arguments.

{}
Source code in metaframe/src/dataframe/summary/base.py
122
123
124
125
126
127
128
129
130
131
def basic(self, **kwargs) -> DataFrame:
    """
    Launch a basic summary.

    Parameters
    ----------
    kwargs
        DataFrameSummaryOpts keyword arguments.
    """
    return self._summary(basic, **kwargs)