Loading...

vastorbit.VastColumn.discretize

VastColumn.discretize(method: Literal['auto', 'same_width', 'same_freq', 'topk'] = 'auto', h: Annotated[int | float | Decimal, 'Python Numbers'] = 0, nbins: int = -1, k: int = 6, new_category: str = 'Others', return_enum_trans: bool = False) VastFrame

Discretizes the VastColumn using the input method.

Parameters:
  • method (str, optional) –

    The method used to discretize the VastColumn:

    • auto:

      Uses method ‘same_width’ for numerical VastColumns, casts the other types to varchar.

    • same_freq:

      Computes bins with the same number of elements.

    • same_width:

      Computes regular width bins.

    • topk:

      Keeps the topk most frequent categories and merge the other into one unique category.

  • h (PythonNumber, optional) – The interval size used to convert the VastColumn. If this parameter is equal to 0, an optimised interval is computed.

  • nbins (int, optional) – Number of bins used for the discretization (must be > 1)

  • k (int, optional) – The integer k of the ‘topk’ method.

  • new_category (str, optional) – The name of the merging category when using the ‘topk’ method.

  • return_enum_trans (bool, optional) – Returns the transformation instead of the VastFrame parent, and does not apply the transformation. This parameter is useful for testing the look of the final transformation.

Returns:

self._parent

Return type:

VastFrame

Examples

We import vastorbit:

import vastorbit as vo

Hint

By assigning an alias to vastorbit, we mitigate the risk of code collisions with other libraries. This precaution is necessary because vastorbit uses commonly known function names like “average” and “median”, which can potentially lead to naming conflicts. The use of an alias ensures that the functions from vastorbit are used as intended without interfering with functions from other libraries.

For this example, we will use the Titanic dataset.

import vastorbit.datasets as vod

data = vod.load_titanic()
123
pclass
Integer
123
survived
Integer
Abc
name
Varchar(164)
Abc
sex
Varchar(20)
123
age
Double
123
sibsp
Integer
123
parch
Integer
Abc
ticket
Varchar(36)
123
fare
Double
Abc
cabin
Varchar(30)
Abc
embarked
Varchar(20)
Abc
boat
Varchar(100)
123
body
Integer
Abc
home.dest
Varchar(100)
131McCormack, Mr. Thomas Josephmale[null]003672287.75[null]Q[null][null][null]
231McCoy, Miss. Agnesfemale[null]2036722623.25[null]Q16[null][null]
331McCoy, Miss. Aliciafemale[null]2036722623.25[null]Q16[null][null]
431McCoy, Mr. Bernardmale[null]2036722623.25[null]Q16[null][null]
531McDermott, Miss. Brigdet Deliafemale[null]003309327.7875[null]Q13[null][null]
630McEvoy, Mr. Michaelmale[null]003656815.5[null]Q[null][null][null]
731McGovern, Miss. Maryfemale[null]003309317.8792[null]Q13[null][null]
831McGowan, Miss. Anna "Annie"female15.0003309238.0292[null]Q[null][null][null]
930McGowan, Miss. Katherinefemale35.00092327.75[null]Q[null][null][null]
1030McMahon, Mr. Martinmale[null]003703727.75[null]Q[null][null][null]
1130McNamee, Mr. Nealmale24.01037656616.1[null]S[null][null][null]
1230McNamee, Mrs. Neal (Eileen O'Leary)female19.01037656616.1[null]S[null]53[null]
1330McNeill, Miss. Bridgetfemale[null]003703687.75[null]Q[null][null][null]
1430Meanwell, Miss. (Marion Ogden)female[null]00SOTON/O.Q. 3920878.05[null]S[null][null][null]
1530Meek, Mrs. Thomas (Annie Louise Rowley)female[null]003430958.05[null]S[null][null][null]
1630Meo, Mr. Alfonzomale55.500A.5. 112068.05[null]S[null]201[null]
1730Mernagh, Mr. Robertmale[null]003687037.75[null]Q[null][null][null]
1831Midtsjo, Mr. Karl Albertmale21.0003455017.775[null]S15[null][null]
1930Miles, Mr. Frankmale[null]003593068.05[null]S[null][null][null]
2030Mineff, Mr. Ivanmale24.0003492337.8958[null]S[null][null][null]
2130Minkoff, Mr. Lazarmale21.0003492117.8958[null]S[null][null][null]
2230Mionoff, Mr. Stoytchomale28.0003492077.8958[null]S[null][null][null]
2330Mitkoff, Mr. Mitomale[null]003492217.8958[null]S[null][null][null]
2431Mockler, Miss. Helen Mary "Ellie"female[null]003309807.8792[null]Q16[null][null]
2530Moen, Mr. Sigurd Hansenmale25.0003481237.65F G73S[null]309[null]
2631Moor, Master. Meiermale6.00139209612.475E121S14[null][null]
2731Moor, Mrs. (Beila)female27.00139209612.475E121S14[null][null]
2830Moore, Mr. Leonard Charlesmale[null]00A4. 545108.05[null]S[null][null][null]
2931Moran, Miss. Berthafemale[null]1037111024.15[null]Q16[null][null]
3030Moran, Mr. Daniel Jmale[null]1037111024.15[null]Q[null][null][null]
3130Moran, Mr. Jamesmale[null]003308778.4583[null]Q[null][null][null]
3230Morley, Mr. Williammale34.0003645068.05[null]S[null][null][null]
3330Morrow, Mr. Thomas Rowanmale[null]003726227.75[null]Q[null][null][null]
3431Moss, Mr. Albert Johanmale[null]003129917.775[null]SB[null][null]
3531Moubarek, Master. Geriosmale[null]11266115.2458[null]CC[null][null]
3631Moubarek, Master. Halim Gonios ("William George")male[null]11266115.2458[null]CC[null][null]
3731Moubarek, Mrs. George (Omine "Amenia" Alexander)female[null]02266115.2458[null]CC[null][null]
3831Moussa, Mrs. (Mantoura Boulos)female[null]0026267.2292[null]C[null][null][null]
3930Moutal, Mr. Rahamin Haimmale[null]003747468.05[null]S[null][null][null]
4031Mullens, Miss. Katherine "Katie"female[null]00358527.7333[null]Q16[null][null]
4131Mulvihill, Miss. Bertha Efemale24.0003826537.75[null]Q15[null][null]
4230Murdlin, Mr. Josephmale[null]00A./5. 32358.05[null]S[null][null][null]
4331Murphy, Miss. Katherine "Kate"female[null]1036723015.5[null]Q16[null][null]
4431Murphy, Miss. Margaret Janefemale[null]1036723015.5[null]Q16[null][null]
4531Murphy, Miss. Norafemale[null]003656815.5[null]Q16[null][null]
4630Myhrman, Mr. Pehr Fabian Oliver Malkolmmale18.0003470787.75[null]S[null][null][null]
4730Naidenoff, Mr. Penkomale22.0003492067.8958[null]S[null][null][null]
4831Najib, Miss. Adele Kiamie "Jane"female15.00026677.225[null]CC[null][null]
4931Nakid, Miss. Maria ("Mary")female1.002265315.7417[null]CC[null][null]
5031Nakid, Mr. Sahidmale20.011265315.7417[null]CC[null][null]
5131Nakid, Mrs. Said (Waika "Mary" Mowad)female19.011265315.7417[null]CC[null][null]
5230Nancarrow, Mr. William Henrymale33.000A./5. 33388.05[null]S[null][null][null]
5330Nankoff, Mr. Minkomale[null]003492187.8958[null]S[null][null][null]
5430Nasr, Mr. Mustafamale[null]0026527.2292[null]C[null][null][null]
5530Naughton, Miss. Hannahfemale[null]003652377.75[null]Q[null][null][null]
5630Nenkoff, Mr. Christomale[null]003492347.8958[null]S[null][null][null]
5731Nicola-Yarred, Master. Eliasmale12.010265111.2417[null]CC[null][null]
5831Nicola-Yarred, Miss. Jamilafemale14.010265111.2417[null]CC[null][null]
5930Nieminen, Miss. Manta Josefinafemale29.00031012977.925[null]S[null][null][null]
6030Niklasson, Mr. Samuelmale28.0003636118.05[null]S[null][null][null]
6131Nilsson, Miss. Berta Oliviafemale18.0003470667.775[null]SD[null][null]
6231Nilsson, Miss. Helmina Josefinafemale26.0003474707.8542[null]S13[null][null]
6330Nilsson, Mr. August Ferdinandmale21.0003504107.8542[null]S[null][null][null]
6430Nirva, Mr. Iisakki Antino Aijomale41.000SOTON/O2 31012727.125[null]S[null][null]Finland Sudbury, ON
6531Niskanen, Mr. Juhamale39.000STON/O 2. 31012897.925[null]S9[null][null]
6630Nosworthy, Mr. Richard Catermale21.000A/4. 398867.8[null]S[null][null][null]
6730Novel, Mr. Mansouermale28.50026977.2292[null]C[null]181[null]
6831Nysten, Miss. Anna Sofiafemale22.0003470817.75[null]S13[null][null]
6930Nysveen, Mr. Johan Hansenmale61.0003453646.2375[null]S[null][null][null]
7030O'Brien, Mr. Thomasmale[null]1037036515.5[null]Q[null][null][null]
7130O'Brien, Mr. Timothymale[null]003309797.8292[null]Q[null][null][null]
7231O'Brien, Mrs. Thomas (Johanna "Hannah" Godfrey)female[null]1037036515.5[null]Q[null][null][null]
7330O'Connell, Mr. Patrick Dmale[null]003349127.7333[null]Q[null][null][null]
7430O'Connor, Mr. Mauricemale[null]003710607.75[null]Q[null][null][null]
7530O'Connor, Mr. Patrickmale[null]003667137.75[null]Q[null][null][null]
7630Odahl, Mr. Nils Martinmale23.00072679.225[null]S[null][null][null]
7730O'Donoghue, Ms. Bridgetfemale[null]003648567.75[null]Q[null][null][null]
7831O'Driscoll, Miss. Bridgetfemale[null]00143117.75[null]QD[null][null]
7931O'Dwyer, Miss. Ellen "Nellie"female[null]003309597.8792[null]Q[null][null][null]
8031Ohman, Miss. Velinfemale22.0003470857.775[null]SC[null][null]
8131O'Keefe, Mr. Patrickmale[null]003684027.75[null]QB[null][null]
8231O'Leary, Miss. Hanora "Norah"female[null]003309197.8292[null]Q13[null][null]
8331Olsen, Master. Artur Karlmale9.001C 173683.1708[null]S13[null][null]
8430Olsen, Mr. Henry Margidomale28.000C 400122.525[null]S[null]173[null]
8530Olsen, Mr. Karl Siegwart Andreasmale42.00145798.4042[null]S[null][null][null]
8630Olsen, Mr. Ole Martinmale[null]00Fa 2653027.3125[null]S[null][null][null]
8730Olsson, Miss. Elinafemale31.0003504077.8542[null]S[null][null][null]
8830Olsson, Mr. Nils Johan Goranssonmale28.0003474647.8542[null]S[null][null][null]
8931Olsson, Mr. Oscar Wilhelmmale32.0003470797.775[null]SA[null][null]
9030Olsvigen, Mr. Thor Andersonmale20.00065639.225[null]S[null]89Oslo, Norway Cameron, WI
9130Oreskovic, Miss. Jelkafemale23.0003150858.6625[null]S[null][null][null]
9230Oreskovic, Miss. Marijafemale20.0003150968.6625[null]S[null][null][null]
9330Oreskovic, Mr. Lukamale20.0003150948.6625[null]S[null][null][null]
9430Osen, Mr. Olaf Elonmale16.00075349.2167[null]S[null][null][null]
9531Osman, Mrs. Marafemale31.0003492448.6833[null]S[null][null][null]
9630O'Sullivan, Miss. Bridget Maryfemale[null]003309097.6292[null]Q[null][null][null]
9730Palsson, Master. Gosta Leonardmale2.03134990921.075[null]S[null]4[null]
9830Palsson, Master. Paul Folkemale6.03134990921.075[null]S[null][null][null]
9930Palsson, Miss. Stina Violafemale3.03134990921.075[null]S[null][null][null]
10030Palsson, Miss. Torborg Danirafemale8.03134990921.075[null]S[null][null][null]
Rows: 1-100 | Columns: 14

Note

vastorbit offers a wide range of sample datasets that are ideal for training and testing purposes. You can explore the full list of available datasets in the Datasets, which provides detailed information on each dataset and how to use them effectively. These datasets are invaluable resources for honing your data analysis and machine learning skills within the vastorbit environment.

Let’s look at “age” VastColumn

data["age"]
123
age
Double
1[null]
2[null]
3[null]
4[null]
5[null]
6[null]
7[null]
815.0
935.0
10[null]
1124.0
1219.0
13[null]
14[null]
15[null]
1655.5
17[null]
1821.0
19[null]
2024.0
2121.0
2228.0
23[null]
24[null]
2525.0
266.0
2727.0
28[null]
29[null]
30[null]
31[null]
3234.0
33[null]
34[null]
35[null]
36[null]
37[null]
38[null]
39[null]
40[null]
4124.0
42[null]
43[null]
44[null]
45[null]
4618.0
4722.0
4815.0
491.0
5020.0
5119.0
5233.0
53[null]
54[null]
55[null]
56[null]
5712.0
5814.0
5929.0
6028.0
6118.0
6226.0
6321.0
6441.0
6539.0
6621.0
6728.5
6822.0
6961.0
70[null]
71[null]
72[null]
73[null]
74[null]
75[null]
7623.0
77[null]
78[null]
79[null]
8022.0
81[null]
82[null]
839.0
8428.0
8542.0
86[null]
8731.0
8828.0
8932.0
9020.0
9123.0
9220.0
9320.0
9416.0
9531.0
96[null]
972.0
986.0
993.0
1008.0
Rows: 1-100 of 1309 | Column: age | Type: double

Let’s look at the distribution of age.

data["age"].bar()

Let’s discretize “age” using the same bar width.

data["age"].discretize(method = "same_width", h = 10)
data["age"]
Abc
age
Varchar
1[null]
2[null]
3[null]
4[null]
5[null]
6[null]
7[null]
8[1.0E1;2.0E1]
9[3.0E1;4.0E1]
10[null]
11[2.0E1;3.0E1]
12[1.0E1;2.0E1]
13[null]
14[null]
15[null]
16[5.0E1;6.0E1]
17[null]
18[2.0E1;3.0E1]
19[null]
20[2.0E1;3.0E1]
21[2.0E1;3.0E1]
22[2.0E1;3.0E1]
23[null]
24[null]
25[2.0E1;3.0E1]
26[0E0;1.0E1]
27[2.0E1;3.0E1]
28[null]
29[null]
30[null]
31[null]
32[3.0E1;4.0E1]
33[null]
34[null]
35[null]
36[null]
37[null]
38[null]
39[null]
40[null]
41[2.0E1;3.0E1]
42[null]
43[null]
44[null]
45[null]
46[1.0E1;2.0E1]
47[2.0E1;3.0E1]
48[1.0E1;2.0E1]
49[0E0;1.0E1]
50[2.0E1;3.0E1]
51[1.0E1;2.0E1]
52[3.0E1;4.0E1]
53[null]
54[null]
55[null]
56[null]
57[1.0E1;2.0E1]
58[1.0E1;2.0E1]
59[2.0E1;3.0E1]
60[2.0E1;3.0E1]
61[1.0E1;2.0E1]
62[2.0E1;3.0E1]
63[2.0E1;3.0E1]
64[4.0E1;5.0E1]
65[3.0E1;4.0E1]
66[2.0E1;3.0E1]
67[2.0E1;3.0E1]
68[2.0E1;3.0E1]
69[6.0E1;7.0E1]
70[null]
71[null]
72[null]
73[null]
74[null]
75[null]
76[2.0E1;3.0E1]
77[null]
78[null]
79[null]
80[2.0E1;3.0E1]
81[null]
82[null]
83[0E0;1.0E1]
84[2.0E1;3.0E1]
85[4.0E1;5.0E1]
86[null]
87[3.0E1;4.0E1]
88[2.0E1;3.0E1]
89[3.0E1;4.0E1]
90[2.0E1;3.0E1]
91[2.0E1;3.0E1]
92[2.0E1;3.0E1]
93[2.0E1;3.0E1]
94[1.0E1;2.0E1]
95[3.0E1;4.0E1]
96[null]
97[0E0;1.0E1]
98[0E0;1.0E1]
99[0E0;1.0E1]
100[0E0;1.0E1]
Rows: 1-100 of 1309 | Column: age | Type: varchar

Let’s look at the distribution of age again.

data["age"].bar()

Let’s discretize “age” using the same frequency per bin.

data = vod.load_titanic() # Reloading the dataset
data["age"].discretize(method = "same_freq", nbins = 5)
data["age"]
Abc
age
Varchar(11)
1[null]
2[null]
3[null]
4[null]
5[null]
6[null]
7[null]
8[0.17;19.0]
9[31.0;42.0]
10[null]
11[19.0;25.0]
12[0.17;19.0]
13[null]
14[null]
15[null]
16[42.0;80.0]
17[null]
18[19.0;25.0]
19[null]
20[19.0;25.0]
21[19.0;25.0]
22[25.0;31.0]
23[null]
24[null]
25[19.0;25.0]
26[0.17;19.0]
27[25.0;31.0]
28[null]
29[null]
30[null]
31[null]
32[31.0;42.0]
33[null]
34[null]
35[null]
36[null]
37[null]
38[null]
39[null]
40[null]
41[19.0;25.0]
42[null]
43[null]
44[null]
45[null]
46[0.17;19.0]
47[19.0;25.0]
48[0.17;19.0]
49[0.17;19.0]
50[19.0;25.0]
51[0.17;19.0]
52[31.0;42.0]
53[null]
54[null]
55[null]
56[null]
57[0.17;19.0]
58[0.17;19.0]
59[25.0;31.0]
60[25.0;31.0]
61[0.17;19.0]
62[25.0;31.0]
63[19.0;25.0]
64[31.0;42.0]
65[31.0;42.0]
66[19.0;25.0]
67[25.0;31.0]
68[19.0;25.0]
69[42.0;80.0]
70[null]
71[null]
72[null]
73[null]
74[null]
75[null]
76[19.0;25.0]
77[null]
78[null]
79[null]
80[19.0;25.0]
81[null]
82[null]
83[0.17;19.0]
84[25.0;31.0]
85[31.0;42.0]
86[null]
87[25.0;31.0]
88[25.0;31.0]
89[31.0;42.0]
90[19.0;25.0]
91[19.0;25.0]
92[19.0;25.0]
93[19.0;25.0]
94[0.17;19.0]
95[25.0;31.0]
96[null]
97[0.17;19.0]
98[0.17;19.0]
99[0.17;19.0]
100[0.17;19.0]
Rows: 1-100 of 1309 | Column: age | Type: varchar(11)

Let’s look at the distribution of age again.

data["age"].bar()

See also

VastFrame.decode() : User Defined Encoding.
VastFrame.label_encode() : Label Encoding.
VastFrame.mean_encode() : Mean Encoding.
VastFrame.one_hot_encode() : One Hot Encoding.