Skip to content

Latest commit

 

History

History
263 lines (208 loc) · 17.2 KB

groupby.cummin.md

File metadata and controls

263 lines (208 loc) · 17.2 KB
description
Obtain the cummulative minimum per groups for each column

Groupby.cumMin

danfo.Groupby.cummin() [source]

Parameters: None

Return: DataFrame

Examples

Obtain the cumulative min of a column for each groups, group by one column

{% tabs %} {% tab title="Node" %}

const dfd = require("danfojs-node")


let data ={A: ['foo', 'bar', 'foo', 'bar',
                'foo', 'bar', 'foo', 'foo'],
           B: ['one', 'one', 'two', 'three',
                'two', 'two', 'one', 'three'],
           C: [1,3,2,4,5,2,6,7],
           D: [3,2,4,1,5,6,7,8]
}

let df = new dfd.DataFrame(data)

let grp = df.groupby(["A"])
let grpColC = grp.col(["C"])
grpColC.cumMin().head().print()
grpColC.cumMin().tail().print()

{% endtab %} {% endtabs %}


 Shape: (5,2) 

╔═══╤═══════════════════╤═══════════════════╗
║   │ A                 │ C_cummin          ║
╟───┼───────────────────┼───────────────────╢
║ 0 │ foo               │ 1                 ║
╟───┼───────────────────┼───────────────────╢
║ 1 │ foo               │ 1                 ║
╟───┼───────────────────┼───────────────────╢
║ 2 │ foo               │ 1                 ║
╟───┼───────────────────┼───────────────────╢
║ 3 │ foo               │ 1                 ║
╟───┼───────────────────┼───────────────────╢
║ 4 │ foo               │ 1                 ║
╚═══╧═══════════════════╧═══════════════════╝


 Shape: (5,2) 

╔═══╤═══════════════════╤═══════════════════╗
║   │ A                 │ C_cummin          ║
╟───┼───────────────────┼───────────────────╢
║ 3 │ foo               │ 1                 ║
╟───┼───────────────────┼───────────────────╢
║ 4 │ foo               │ 1                 ║
╟───┼───────────────────┼───────────────────╢
║ 5 │ bar               │ 3                 ║
╟───┼───────────────────┼───────────────────╢
║ 6 │ bar               │ 3                 ║
╟───┼───────────────────┼───────────────────╢
║ 7 │ bar               │ 2                 ║
╚═══╧═══════════════════╧═══════════════════╝

Obtain the cummin for two columns for each group, group by one column

{% tabs %} {% tab title="Node" %}

const dfd = require("danfojs-node")


let data ={A: ['foo', 'bar', 'foo', 'bar',
                'foo', 'bar', 'foo', 'foo'],
           B: ['one', 'one', 'two', 'three',
                'two', 'two', 'one', 'three'],
           C: [1,3,2,4,5,2,6,7],
           D: [3,2,4,1,5,6,7,8]
}

let df = new dfd.DataFrame(data)

let grp = df.groupby(["A"])
let grpCol = grp.col("C","D"])
grpCol.cumMin().head().print()
grpCol.cumMin().tail().print()

{% endtab %} {% endtabs %}

  
 Shape: (5,3) 

╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
║   │ A                 │ C_cummin          │ D_cummin          ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ 0 │ foo               │ 1                 │ 3                 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ 1 │ foo               │ 1                 │ 3                 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ 2 │ foo               │ 1                 │ 3                 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ 3 │ foo               │ 1                 │ 3                 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ 4 │ foo               │ 1                 │ 3                 ║
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝


 Shape: (5,3) 

╔════╤═══════════════════╤═══════════════════╤═══════════════════╗
║    │ A                 │ C_cummin          │ D_cummin          ║
╟────┼───────────────────┼───────────────────┼───────────────────╢
║ 11 │ bar               │ 3                 │ 1                 ║
╟────┼───────────────────┼───────────────────┼───────────────────╢
║ 12 │ bar               │ 2                 │ 1                 ║
╟────┼───────────────────┼───────────────────┼───────────────────╢
║ 13 │ bar               │ 3                 │ 2                 ║
╟────┼───────────────────┼───────────────────┼───────────────────╢
║ 14 │ bar               │ 3                 │ 1                 ║
╟────┼───────────────────┼───────────────────┼───────────────────╢
║ 15 │ bar               │ 2                 │ 1                 ║
╚════╧═══════════════════╧═══════════════════╧═══════════════════╝

Obtain the cummin for a column for each group, group by two columns

{% tabs %} {% tab title="Node" %}

const dfd = require("danfojs-node")


let data ={A: ['foo', 'bar', 'foo', 'bar',
                'foo', 'bar', 'foo', 'foo'],
           B: ['one', 'one', 'two', 'three',
                'two', 'two', 'one', 'three'],
           C: [1,3,2,4,5,2,6,7],
           D: [3,2,4,1,5,6,7,8]
}

let df = new dfd.DataFrame(data)

let grp = df.groupby(["A","B"])
let grpCol = grp.col(["C"])
grpCol.cumMin().head().print()
grpCol.cumMin().tail().print()

{% endtab %} {% endtabs %}

  Shape: (5,3) 

╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
║   │ A                 │ B                 │ C_cummin          ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ 0 │ foo               │ one               │ 1                 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ 1 │ foo               │ one               │ 1                 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ 2 │ foo               │ two               │ 2                 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ 3 │ foo               │ two               │ 2                 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ 4 │ foo               │ three             │ 7                 ║
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝


 Shape: (5,3) 

╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
║   │ A                 │ B                 │ C_cummin          ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ 3 │ foo               │ two               │ 2                 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ 4 │ foo               │ three             │ 7                 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ 5 │ bar               │ one               │ 3                 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ 6 │ bar               │ two               │ 2                 ║
╟───┼───────────────────┼───────────────────┼───────────────────╢
║ 7 │ bar               │ three             │ 4                 ║
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝

Obtain the cummin for two columns for each group, group by two columns

{% tabs %} {% tab title="Node" %}

const dfd = require("danfojs-node")


let data ={A: ['foo', 'bar', 'foo', 'bar',
                'foo', 'bar', 'foo', 'foo'],
           B: ['one', 'one', 'two', 'three',
                'two', 'two', 'one', 'three'],
           C: [1,3,2,4,5,2,6,7],
           D: [3,2,4,1,5,6,7,8]
}

let df = new dfd.DataFrame(data)

let grp = df.groupby(["A","B"])
let grpCol = grp.col(["C","D"])
grpCol.cumMin().head().print()
grpCol.cumMin().tail().print()

{% endtab %} {% endtabs %}

  
  Shape: (5,4) 

╔═══╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
║   │ A                 │ B                 │ C_cummin          │ D_cummin          ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 0 │ foo               │ one               │ 1                 │ 3                 ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 1 │ foo               │ one               │ 1                 │ 3                 ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 2 │ foo               │ two               │ 2                 │ 4                 ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 3 │ foo               │ two               │ 2                 │ 4                 ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 4 │ foo               │ three             │ 7                 │ 8                 ║
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝


 Shape: (5,4) 

╔═══╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
║   │ A                 │ B                 │ C_cummin          │ D_cummin          ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 3 │ foo               │ two               │ 2                 │ 4                 ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 4 │ foo               │ three             │ 7                 │ 8                 ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 5 │ bar               │ one               │ 3                 │ 2                 ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 6 │ bar               │ two               │ 2                 │ 6                 ║
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
║ 7 │ bar               │ three             │ 4                 │ 1                 ║
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝