# datatable.cummin()¶

cummin
(
,
reverse=`False`
)
Added in version 1.1.0

For each column from `cols` calculate cumulative minimum. In the presence of `by()`, the cumulative minimum is computed within each group.

## Parameters¶

cols
`FExpr`

Input data for cumulative minimum calculation.

reverse
`bool`

If `False`, computation is done from top to bottom. If `True`, it is done from bottom to top.

return
`FExpr`

f-expression that converts input columns into the columns filled with the respective cumulative minimums.

except
`TypeError`

The exception is raised when one of the columns from `cols` has a non-numeric type.

## Examples¶

Create a sample datatable frame:

```from datatable import dt, f, by DT = dt.Frame({"A": [2, None, 5, -1, 0], "B": [None, None, None, None, None], "C": [5.4, 3, 2.2, 4.323, 3], "D": ['a', 'a', 'b', 'b', 'b']}) ```
ABCD
int32voidfloat64str32
02NA5.4a
1NANA3a
25NA2.2b
3-1NA4.323b
40NA3b

Calculate the cumulative minimum in a single column:

```DT[:, dt.cummin(f.A)] ```
A
int32
02
12
22
3-1
4-1

Calculate the cumulative minimum from bottom to top:

```DT[:, dt.cummin(f.A, reverse=True)] ```
A
int32
0-1
1-1
2-1
3-1
40

Calculate the cumulative minimum in multiple columns:

```DT[:, dt.cummin(f[:-1])] ```
ABC
int32voidfloat64
02NA5.4
12NA3
22NA2.2
3-1NA2.2
4-1NA2.2

For a grouped frame calculate the cumulative minimum within each group:

```DT[:, dt.cummin(f[:]), by('D')] ```
DABC
str32int32voidfloat64
0a2NA5.4
1a2NA3
2b5NA2.2
3b-1NA2.2
4b-1NA2.2