DataFrame.loc
Access a group of rows and columns by label(s)
danfo.DataFrame.loc(args)
args
Object
{
rows: Array, labels, Boolean mask of row index
columns: Array, labels of column names
}
Examples
.loc() is label position based-from 0 to length-1 of the row axis.
Allowed inputs for are:
An integer, e.g.
"r1".A list or array of integers, e.g.
["a", "b", "d"].A boolean mask. E.g [ true, false, false ]
A string slice object with ints, e.g.
['"a":"d"'], ["1:4"]
Note: only **** the start label is included, and the end label is ignored.
.loc will raise a ValueEror if a requested label is not found.
Index by specific rows 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.
const dfd = require("danfojs-node")
let data = { "Name": ["Apples", "Mango", "Banana", "Pear"],
"Count": [21, 5, 30, 10],
"Price": [200, 300, 40, 250] }
let df = new dfd.DataFrame(data, {index: ["a", "b", "c", "d"]})
df.print()
let sub_df = df.loc({rows: ["a", "c"]})
sub_df.print()βββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β Name β Count β Price β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β a β Apples β 21 β 200 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β b β Mango β 5 β 300 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β c β Banana β 30 β 40 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β d β Pear β 10 β 250 β
βββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ
Shape: (2,3)
βββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β Name β Count β Price β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β a β Apples β 21 β 200 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β c β Banana β 30 β 40 β
βββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββIndex by a list of column names and return all rows
const dfd = require("danfojs-node")
let data = { "Name": ["Apples", "Mango", "Banana", "Pear"],
"Count": [21, 5, 30, 10],
"Price": [200, 300, 40, 250] }
let df = new dfd.DataFrame(data, {index: ["a", "b", "c", "d"]})
df.print()
let sub_df = df.loc({columns: ["Count", "Price"]})
sub_df.print()βββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β Name β Count β Price β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β a β Apples β 21 β 200 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β b β Mango β 5 β 300 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β c β Banana β 30 β 40 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β d β Pear β 10 β 250 β
βββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ
//after indexing
βββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β Count β Price β
βββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β a β 21 β 200 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β b β 5 β 300 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β c β 30 β 40 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β d β 10 β 250 β
βββββ§ββββββββββββββββββββ§ββββββββββββββββββββIndex both axes by the specified labels
const dfd = require("danfojs-node")
let data = { "Name": ["Apples", "Mango", "Banana", "Pear"],
"Count": [21, 5, 30, 10],
"Price": [200, 300, 40, 250] }
let df = new dfd.DataFrame(data, { index: ["a", "b", "c", "d"] })
df.print()
let sub_df = df.loc({ rows: ["c","d"], columns: ["Name", "Price"] })
sub_df.print()βββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β Name β Count β Price β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β a β Apples β 21 β 200 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β b β Mango β 5 β 300 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β c β Banana β 30 β 40 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β d β Pear β 10 β 250 β
βββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ
//after slicing
βββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β Name β Price β
βββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β c β Banana β 40 β
βββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β d β Pear β 250 β
βββββ§ββββββββββββββββββββ§ββββββββββββββββββββIndex by a slice of row
The loc function also accepts string slices of the form [start: end], e.g [`"a":"c"`]. This will return all values from label positions a to c.
const dfd = require("danfojs-node")
let data = { "Name": ["Apples", "Mango", "Banana", "Pear"],
"Count": [21, 5, 30, 10],
"Price": [200, 300, 40, 250] }
let df = new dfd.DataFrame(data, { index: ["a", "b", "c", "d"] })
df.print()
let sub_df = df.loc({ rows: [`"a":"c"`], columns: ["Name", "Price"] })
sub_df.print()ββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β Name β Count β Price β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β a β Apples β 21 β 200 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β b β Mango β 5 β 300 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β c β Banana β 30 β 40 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β d β Pear β 10 β 250 β
ββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ
ββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β Name β Price β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β a β Apples β 200 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β b β Mango β 300 β
ββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββSlice DataFrame rows by boolean condition
const dfd = require("danfojs-node")
let data = {
"Name": ["Apples", "Mango", "Banana", "Pear"],
"Count": [21, 5, 30, 10],
"Price": [200, 300, 40, 250]
}
let df = new dfd.DataFrame(data, { index: ["a", "b", "c", "d"] })
let sub_df = df.loc({ rows: df["Count"].gt(6) })
sub_df.print()ββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β Name β Count β Price β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β a β Apples β 21 β 200 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β c β Banana β 30 β 40 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β d β Pear β 10 β 250 β
ββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββSlice DataFrame rows by multiple boolean conditions
const dfd = require("danfojs-node")
let data = {
"Name": ["Apples", "Mango", "Banana", "Pear"],
"Count": [21, 5, 30, 10],
"Price": [200, 300, 40, 250]
}
let df = new dfd.DataFrame(data, { index: ["a", "b", "c", "d"] })
let condition = df["Count"].gt(6).and(df["Price"].lt(250))
let sub_df = df.loc({ rows: condition })
sub_df.print()ββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β Name β Count β Price β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β a β Apples β 21 β 200 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β c β Banana β 30 β 40 β
ββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββSlice DataFrame with boolean mask
const dfd = require("danfojs-node")
let data = {
"Name": ["Apples", "Mango", "Banana", "Pear"],
"Count": [21, 5, 30, 10],
"Price": [200, 300, 40, 250]
}
let df = new dfd.DataFrame(data, { index: ["a", "b", "c", "d"] })
let sub_df = df.loc({ rows: [false, true, true, true] })
sub_df.print()ββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ€ββββββββββββββββββββ
β β Name β Count β Price β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β b β Mango β 5 β 300 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β c β Banana β 30 β 40 β
ββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββββ’
β d β Pear β 10 β 250 β
ββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββ§ββββββββββββββββββββLast updated
Was this helpful?