DataFrame.iloc
Purely integer-location based indexing for selection by position.
danfo.DataFrame.iloc(args) [source]
Parameters
Type
Description
Default
args
Object
{
rows: Array, index of row position
columns: Array, index of position along columns
}
Returns:
return DataFrame

Examples

.iloc() is primarily integer position based (from 0 to length-1 of the axis).
Allowed inputs are:
    An integer, e.g. 5.
    A list or array of integers, e.g. [4, 3, 0].
    A string slice object with ints, e.g. "1:7"
    A boolean array.
Note: only the start index is included.
.iloc will raiseIndexError if a requested indexer is out-of-bounds.

Indexing specific rows by index and return all columns

If the row's index is specified and the columns are not, then it returns all columns and just the specified rows.
Node
Browser
1
const dfd = require("danfojs-node")
2
3
let data = { "Name": ["Apples", "Mango", "Banana", "Pear"],
4
"Count": [21, 5, 30, 10],
5
"Price": [200, 300, 40, 250] }
6
7
let df = new dfd.DataFrame(data)
8
let sub_df = df.iloc({rows: [0,1,3]})
9
sub_df.print()
Copied!
1
Copied!
Output
1
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
2
║ │ Name │ Count │ Price ║
3
╟───┼───────────────────┼───────────────────┼───────────────────╢
4
║ 0 │ Apples │ 21 │ 200 ║
5
╟───┼───────────────────┼───────────────────┼───────────────────╢
6
║ 1 │ Mango │ 5 │ 300 ║
7
╟───┼───────────────────┼───────────────────┼───────────────────╢
8
║ 3 │ Pear │ 10 │ 250 ║
9
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
Copied!

Index by a slice of row and return all columns

The iloc function also accepts string slices of the form [start: end], e.g "[1: 3]". This will return all values between index position 1 and 3. The end index is not included.
Node
Browser
1
const dfd = require("danfojs-node")
2
3
let data = { "Name": ["Apples", "Mango", "Banana", "Pear"],
4
"Count": [21, 5, 30, 10],
5
"Price": [200, 300, 40, 250] }
6
7
let df = new dfd.DataFrame(data)
8
let sub_df = df.iloc({rows: ["1:3"]})
9
sub_df.print()
Copied!
1
Copied!
Output
1
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
2
║ │ Name │ Count │ Price ║
3
╟───┼───────────────────┼───────────────────┼───────────────────╢
4
║ 1 │ Mango │ 5 │ 300 ║
5
╟───┼───────────────────┼───────────────────┼───────────────────╢
6
║ 2 │ Banana │ 30 │ 40 ║
7
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
Copied!

Index by a slice of column and return all rows

Node
Browser
1
const dfd = require("danfojs-node")
2
3
let data = { "Name": ["Apples", "Mango", "Banana", "Pear"],
4
"Count": [21, 5, 30, 10],
5
"Price": [200, 300, 40, 250] }
6
7
let df = new dfd.DataFrame(data)
8
df.print()
9
10
let sub_df = df.iloc({columns: ["1:"]})
11
sub_df.print()
12
Copied!
1
Copied!
Output
1
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
2
║ │ Name │ Count │ Price ║
3
╟───┼───────────────────┼───────────────────┼───────────────────╢
4
║ 0 │ Apples │ 21 │ 200 ║
5
╟───┼───────────────────┼───────────────────┼───────────────────╢
6
║ 1 │ Mango │ 5 │ 300 ║
7
╟───┼───────────────────┼───────────────────┼───────────────────╢
8
║ 2 │ Banana │ 30 │ 40 ║
9
╟───┼───────────────────┼───────────────────┼───────────────────╢
10
║ 3 │ Pear │ 10 │ 250 ║
11
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
12
13
14
Shape: (4,2)
15
16
╔═══╤═══════════════════╤═══════════════════╗
17
║ │ Count │ Price ║
18
╟───┼───────────────────┼───────────────────╢
19
║ 0 │ 21 │ 200 ║
20
╟───┼───────────────────┼───────────────────╢
21
║ 1 │ 5 │ 300 ║
22
╟───┼───────────────────┼───────────────────╢
23
║ 2 │ 30 │ 40 ║
24
╟───┼───────────────────┼───────────────────╢
25
║ 3 │ 10 │ 250 ║
26
╚═══╧═══════════════════╧═══════════════════╝
Copied!

Indexing both axes by the specified index

Node
Browser
1
const dfd = require("danfojs-node")
2
3
let data = { "Name": ["Apples", "Mango", "Banana", "Pear"],
4
"Count": [21, 5, 30, 10],
5
"Price": [200, 300, 40, 250] }
6
7
let df = new dfd.DataFrame(data)
8
let sub_df = df.iloc({rows: [0,3], columns: [1,2]})
9
sub_df.print()
Copied!
1
Copied!
Output
1
2
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
3
║ │ Name │ Count │ Price ║
4
╟───┼───────────────────┼───────────────────┼───────────────────╢
5
║ 0 │ Apples │ 21 │ 200 ║
6
╟───┼───────────────────┼───────────────────┼───────────────────╢
7
║ 1 │ Mango │ 5 │ 300 ║
8
╟───┼───────────────────┼───────────────────┼───────────────────╢
9
║ 2 │ Banana │ 30 │ 40 ║
10
╟───┼───────────────────┼───────────────────┼───────────────────╢
11
║ 3 │ Pear │ 10 │ 250 ║
12
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
13
14
15
//after indexing
16
17
╔═══╤═══════════════════╤═══════════════════╗
18
║ │ Count │ Price ║
19
╟───┼───────────────────┼───────────────────╢
20
║ 0 │ 21 │ 200 ║
21
╟───┼───────────────────┼───────────────────╢
22
║ 3 │ 10 │ 250 ║
23
╚═══╧═══════════════════╧═══════════════════╝
Copied!

Indexing both axes by slices

Node
Browser
1
const dfd = require("danfojs-node")
2
3
let data = { "Name": ["Apples", "Mango", "Banana", "Pear"],
4
"Count": [21, 5, 30, 10],
5
"Price": [200, 300, 40, 250] }
6
7
let df = new dfd.DataFrame(data)
8
df.print()
9
10
let sub_df = df.iloc({rows: ["2:3"], columns: ["1:2"]})
11
sub_df.print()
12
Copied!
1
Copied!
Output
1
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
2
║ │ Name │ Count │ Price ║
3
╟───┼───────────────────┼───────────────────┼───────────────────╢
4
║ 0 │ Apples │ 21 │ 200 ║
5
╟───┼───────────────────┼───────────────────┼───────────────────╢
6
║ 1 │ Mango │ 5 │ 300 ║
7
╟───┼───────────────────┼───────────────────┼───────────────────╢
8
║ 2 │ Banana │ 30 │ 40 ║
9
╟───┼───────────────────┼───────────────────┼───────────────────╢
10
║ 3 │ Pear │ 10 │ 250 ║
11
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
12
13
14
╔═══╤═══════════════════╗
15
║ │ Count ║
16
╟───┼───────────────────╢
17
║ 2 │ 30 ║
18
╚═══╧═══════════════════╝
Copied!

More default slicing behavior

If you specify a slice start position, iloc automatically returns all values after that position. For instance:
Node
Browser
1
const dfd = require("danfojs-node")
2
3
let data = { "Name": ["Apples", "Mango", "Banana", "Pear"],
4
"Count": [21, 5, 30, 10],
5
"Price": [200, 300, 40, 250] }
6
7
let df = new dfd.DataFrame(data)
8
df.print()
9
10
let sub_df = df.iloc({rows: ["2:"], columns: ["1:"]})
11
sub_df.print()
12
Copied!
1
Copied!
Output
1
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
2
║ │ Name │ Count │ Price ║
3
╟───┼───────────────────┼───────────────────┼───────────────────╢
4
║ 0 │ Apples │ 21 │ 200 ║
5
╟───┼───────────────────┼───────────────────┼───────────────────╢
6
║ 1 │ Mango │ 5 │ 300 ║
7
╟───┼───────────────────┼───────────────────┼───────────────────╢
8
║ 2 │ Banana │ 30 │ 40 ║
9
╟───┼───────────────────┼───────────────────┼───────────────────╢
10
║ 3 │ Pear │ 10 │ 250 ║
11
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
12
13
14
Shape: (2,2)
15
16
╔═══╤═══════════════════╤═══════════════════╗
17
║ │ Count │ Price ║
18
╟───┼───────────────────┼───────────────────╢
19
║ 2 │ 30 │ 40 ║
20
╟───┼───────────────────┼───────────────────╢
21
║ 3 │ 10 │ 250 ║
22
╚═══╧═══════════════════╧═══════════════════╝
Copied!
Last modified 17d ago