df.select { age and name }
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Output DataFrame: rowsCount = 7, columnsCount = 2
agename
firstNamelastName
15AliceCooper
45BobDylan
20CharlieDaniels
40CharlieChaplin
30BobMarley
20AliceWolf
30CharlieByrd


df.fillNaNs { colsAtAnyDepth().colsOf<Double>() }.withZero()
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Step 1: Update
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

DataFrame [7 x 5]

Output DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true


df.remove { cols { it.hasNulls() } }
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Output DataFrame: rowsCount = 7, columnsCount = 3
nameageisHappy
firstNamelastName
AliceCooper15true
BobDylan45true
CharlieDaniels20false
CharlieChaplin40true
BobMarley30true
AliceWolf20false
CharlieByrd30true


df.into { "nameless" }
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Output DataFrame: rowsCount = 7, columnsCount = 2
namenameless
firstNamelastNameagecityweightisHappy
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true


df.update { city }.notNull { it.lowercase() }
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Step 1: Update
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

DataFrame [7 x 5]

Output DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15london54true
BobDylan45dubai87true
CharlieDaniels20moscownullfalse
CharlieChaplin40milannulltrue
BobMarley30tokyo68true
AliceWolf20null55false
CharlieByrd30moscow90true


df.gather { colsOf<Number>() }.into("key", "value")
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Step 1: Gather
namecityweightisHappykeyvalue
firstNamelastName
AliceCooperLondon54trueage15
BobDylanDubai87trueage45
CharlieDanielsMoscownullfalseage20
CharlieChaplinMilannulltrueage40
BobMarleyTokyo68trueage30
AliceWolfnull55falseage20
CharlieByrdMoscow90trueage30

Output DataFrame: rowsCount = 7, columnsCount = 6
namecityweightisHappykeyvalue
firstNamelastName
AliceCooperLondon54trueage15
BobDylanDubai87trueage45
CharlieDanielsMoscownullfalseage20
CharlieChaplinMilannulltrueage40
BobMarleyTokyo68trueage30
AliceWolfnull55falseage20
CharlieByrdMoscow90trueage30


df.after { city }
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Output DataFrame: rowsCount = 7, columnsCount = 6
agecityfirstNamelastNameweightisHappy
15LondonAliceCooper54true
45DubaiBobDylan87true
20MoscowCharlieDanielsnullfalse
40MilanCharlieChaplinnulltrue
30TokyoBobMarley68true
20nullAliceWolf55false
30MoscowCharlieByrd90true