datatable.cummin()

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