df.add { "year" from { 0 } }
Input DataFrame: rowsCount = 7, columnsCount = 5
nameagecityweightisHappy
firstNamelastName
AliceCooper15London54true
BobDylan45Dubai87true
CharlieDaniels20Moscownullfalse
CharlieChaplin40Milannulltrue
BobMarley30Tokyo68true
AliceWolf20null55false
CharlieByrd30Moscow90true

Output DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0


df.select { cols { it.name().startsWith("year") } }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 1
year
0
0
0
0
0
0
0


df.select { nameStartsWith("year") }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 1
year
0
0
0
0
0
0
0


df.select { colsOf<String>() }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 0, columnsCount = 0


df.select { colsOf<String?> { it.countDistinct() > 5 } }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 1
city
London
Dubai
Moscow
Milan
Tokyo
null
Moscow


df.select { all() }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0


df.select { take(2) }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 2
nameage
firstNamelastName
AliceCooper15
BobDylan45
CharlieDaniels20
CharlieChaplin40
BobMarley30
AliceWolf20
CharlieByrd30


df.select { takeLast(2) }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 2
isHappyyear
true0
true0
false0
true0
true0
false0
true0


df.select { drop(2) }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 4
cityweightisHappyyear
London54true0
Dubai87true0
Moscownullfalse0
Milannulltrue0
Tokyo68true0
null55false0
Moscow90true0


df.select { dropLast(2) }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 4
nameagecityweight
firstNamelastName
AliceCooper15London54
BobDylan45Dubai87
CharlieDaniels20Moscownull
CharlieChaplin40Milannull
BobMarley30Tokyo68
AliceWolf20null55
CharlieByrd30Moscow90


df.select { first { it.name.startsWith("year") } }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 1
year
0
0
0
0
0
0
0


df.select { colGroup("name").lastCol { it.name().endsWith("Name") } }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 1
lastName
Cooper
Dylan
Daniels
Chaplin
Marley
Wolf
Byrd


df.select { Person::name.singleCol { it.name().startsWith("first") } }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 1
firstName
Alice
Bob
Charlie
Charlie
Bob
Alice
Charlie


df.select { colsAtAnyDepth().filter { !it.isColumnGroup() } }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 7
firstNamelastNameagecityweightisHappyyear
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0


df.select { colsAtAnyDepth() }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 8
namefirstNamelastNameagecityweightisHappyyear
firstNamelastName
AliceCooperAliceCooper15London54true0
BobDylanBobDylan45Dubai87true0
CharlieDanielsCharlieDaniels20Moscownullfalse0
CharlieChaplinCharlieChaplin40Milannulltrue0
BobMarleyBobMarley30Tokyo68true0
AliceWolfAliceWolf20null55false0
CharlieByrdCharlieByrd30Moscow90true0


df.select { colsAtAnyDepth().filter() { it.name().contains(":") } }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 0, columnsCount = 0


df.select { colsAtAnyDepth().colsOf<String>() }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 2
firstNamelastName
AliceCooper
BobDylan
CharlieDaniels
CharlieChaplin
BobMarley
AliceWolf
CharlieByrd


df.select { allExcept { colsOf<String>() } }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0


df.select { take(2) and col(3) }
Input DataFrame: rowsCount = 7, columnsCount = 6
nameagecityweightisHappyyear
firstNamelastName
AliceCooper15London54true0
BobDylan45Dubai87true0
CharlieDaniels20Moscownullfalse0
CharlieChaplin40Milannulltrue0
BobMarley30Tokyo68true0
AliceWolf20null55false0
CharlieByrd30Moscow90true0

Output DataFrame: rowsCount = 7, columnsCount = 3
nameageweight
firstNamelastName
AliceCooper1554
BobDylan4587
CharlieDaniels20null
CharlieChaplin40null
BobMarley3068
AliceWolf2055
CharlieByrd3090