Loading...

verticapy.vDataFrame.to_db

vDataFrame.to_db(name: str, usecols: Annotated[str | list[str], 'STRING representing one column or a list of columns'] | None = None, relation_type: Literal['view', 'temporary', 'table', 'local', 'insert'] = 'view', inplace: bool = False, db_filter: Annotated[str | list[str] | StringSQL | list[StringSQL], ''] = '', nb_split: int = 0, order_by: None | Annotated[str | list[str], 'STRING representing one column or a list of columns'] | dict = None, segmented_by: Annotated[str | list[str], 'STRING representing one column or a list of columns'] | None = None) vDataFrame

Saves the vDataFrame current relation to the Vertica database.

Parameters

name: str

Name of the relation. To save the relation in a specific schema, you can write '"my_schema"."my_relation"'. Use double quotes ‘”’ to avoid errors due to special characters.

usecols: SQLColumns, optional

vDataColumn to select from the final vDataFrame relation. If empty, all vDataColumn are selected.

relation_type: str, optional

Type of the relation.

  • view:

    View.

  • table:

    Table.

  • temporary:

    Temporary Table.

  • local:

    Local Temporary Table.

  • insert:

    Inserts into an existing table.

inplace: bool, optional

If set to True, the vDataFrame is replaced with the new relation.

db_filter: SQLExpression, optional

Filter used before creating the relation in the DB. It can be a list of conditions or an expression. This parameter is useful for creating train and test sets on TS.

nb_split: int, optional

If this parameter is greater than 0, it adds a new column '_verticapy_split_' to the final relation. This column contains values in [0;nb_split - 1] where each category represents 1 / nb_split of the entire distribution.

order_by: SQLColumns | dict, optional

List of the vDataColumn used to sort the data, using asc order or a dictionary of all sorting methods. For example, to sort by “column1” ASC and “column2” DESC, write: {"column1": "asc", "column2": "desc"}

segmented_by: SQLColumns, optional

This parameter is only used when relation_type is ‘table’ or ‘temporary’. Otherwise, it is ignored. List of the vDataColumns used to segment the data; All the columns used will be passed to the HASH function.

Returns

vDataFrame

self

Examples

We import verticapy:

import verticapy as vp

Hint

By assigning an alias to verticapy, we mitigate the risk of code collisions with other libraries. This precaution is necessary because verticapy 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 verticapy are used as intended without interfering with functions from other libraries.

For this example, we will use the Titanic dataset.

import verticapy.datasets as vpd

data = vpd.load_titanic()
123
pclass
Integer
123
survived
Integer
Abc
Varchar(164)
Abc
sex
Varchar(20)
123
age
Numeric(8)
123
sibsp
Integer
123
parch
Integer
Abc
ticket
Varchar(36)
123
fare
Numeric(12)
Abc
cabin
Varchar(30)
Abc
embarked
Varchar(20)
Abc
boat
Varchar(100)
123
body
Integer
Abc
Varchar(100)
110male71.000PC 1760949.5042[null]C[null]22
210male45.00011378435.5TS[null][null]
310male[null]0011379831.0[null]S[null][null]
410male17.00011305947.1[null]S[null][null]
510male27.01013508136.7792C89C[null][null]
610male37.011PC 1775683.1583E52C[null][null]
710male31.010F.C. 1275052.0B71S[null][null]
810male50.010PC 17761106.425C86C[null]62
910female36.000PC 1753131.6792A29C[null][null]
1010male37.01011380353.1C123S[null][null]
1110male24.000PC 1759379.2B86C[null][null]
1210male45.0103697383.475C83S[null][null]
1310male40.0001120590.0B94S[null]110
1410male42.00011303842.5B11S[null][null]
1510male[null]001746351.8625E46S[null][null]
1610male42.01011378952.0[null]S[null]38
1710male[null]00PC 1760030.6958[null]C14[null]
1810male29.00011350130.0D6S[null]126
1910male46.0001305075.2417C6C[null]292
2010male54.0001746351.8625E46S[null]175
2110male47.00011379642.4[null]S[null][null]
2210male58.00235273113.275D48C[null]122
2310male45.50011304328.5C124S[null]166
2410male29.01011377666.6C2S[null][null]
2510male47.00011046552.0C110S[null]207
2610male38.000199720.0[null]S[null][null]
2710male22.000PC 17760135.6333[null]C[null]232
2810male31.000PC 1759050.4958A24S[null][null]
2910male50.0101350755.9E44S[null][null]
3010male56.0001776430.6958A7C[null][null]
3110male57.010PC 17569146.5208B78C[null][null]
3210female63.010PC 17483221.7792C55 C57S[null][null]
3310male61.0003696332.3208D50S[null]46
3410male21.0013528177.2875D26S[null]169
3510male51.001PC 1759761.3792[null]C[null][null]
3611female63.0101350277.9583D7S10[null]
3711female32.0001181376.2917D15C8[null]
3811female58.00011378326.55C103S8[null]
3911female44.000PC 1761027.7208B4C6[null]
4011female41.00016966134.5E40C3[null]
4111female53.000PC 1760627.4458[null]C6[null]
4211male36.001PC 17755512.3292B51 B53 B55C3[null]
4311female58.001PC 17755512.3292B51 B53 B55C3[null]
4411male11.012113760120.0B96 B98S4[null]
4511female76.0101987778.85C46S6[null]
4611female[null]0111350555.0E33S6[null]
4711female39.011PC 1775683.1583E49C14[null]
4811female27.012F.C. 1275052.0B71S3[null]
4911female[null]0017421110.8833[null]C4[null]
5011female35.000113503211.5C130C4[null]
5111female22.00111237859.4[null]C7[null]
5211female25.0101176555.4417E50C5[null]
5311male48.010PC 1757276.7292D33C3[null]
5411female35.0103697383.475C83SD[null]
5511male27.000PC 1757276.7292D49C3[null]
5611female24.0001176783.1583C54C7[null]
5711female52.0111274993.5B69S3[null]
5811female44.00111136157.9792B18C4[null]
5911female15.00124160211.3375B5S2[null]
6011male30.0101323657.75C78C11[null]
6111female31.01035273113.275D36C6[null]
6211female39.000PC 17758108.9C105C8[null]
6311female22.00111350961.9792B36C5[null]
6411male52.00011378630.5C104S6[null]
6511female43.00124160211.3375B3S2[null]
6611female33.00011015286.5B77S8[null]
6711male45.01116966134.5E34C3[null]
6811female40.01116966134.5E34C3[null]
6911male48.0101999652.0C126S5 7[null]
7011female[null]00PC 1758579.2[null]CD[null]
7111female35.000PC 17755512.3292[null]C3[null]
7211female60.01011081375.25D37C5[null]
7311male21.001PC 1759761.3792[null]CA[null]
7420male23.000C.A. 3103010.5[null]S[null][null]
7520male28.00024435826.0[null]S[null][null]
7620male60.0112975039.0[null]S[null][null]
7720female44.01024425226.0[null]S[null][null]
7820male29.010200326.0[null]S[null][null]
7920male18.000S.O.C. 1487973.5[null]S[null][null]
8020male18.000S.O.C. 1487973.5[null]S[null][null]
8120male54.0002840326.0[null]S[null][null]
8220male18.00023617113.0[null]S[null][null]
8320male36.00022923613.0[null]S[null]236
8420male34.0102866421.0[null]S[null][null]
8520male21.0102813311.5[null]S[null][null]
8620male21.0102813411.5[null]S[null][null]
8720male24.00023386613.0[null]S[null]155
8820male34.0001223313.0[null]S[null][null]
8920male30.00025065313.0[null]S[null]75
9020male44.00024874613.0[null]S[null]35
9120male49.01222084565.0[null]S[null][null]
9220male21.020S.O.C. 1487973.5[null]S[null][null]
9320male21.000S.O.C. 1487973.5[null]S[null][null]
9420female60.0102406526.0[null]S[null][null]
9520male24.020C.A. 3102931.5[null]S[null][null]
9620male22.020C.A. 3102931.5[null]S[null][null]
9720male35.00023373412.35[null]Q[null][null]
9820male31.000C.A. 1872310.5[null]S[null]165
9920male36.000SC/Paris 216312.875DC[null][null]
10020male[null]00SC/A.3 286115.5792[null]C[null][null]
Rows: 1-100 | Columns: 14

Note

VerticaPy 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 VerticaPy environment.

Let’s do some transformations.

data.get_dummies()
data.normalize()
123
pclass
Float
100%
...
123
survived
Float
100%
123
embarked_Q
Bool
100%
1-1.5245848565393982...-0.75730737115396320
2-1.5245848565393982...-0.75730737115396320
3-1.5245848565393982...-0.75730737115396320
4-1.5245848565393982...-0.75730737115396320
5-1.5245848565393982...-0.75730737115396320
6-1.5245848565393982...-0.75730737115396320
7-1.5245848565393982...-0.75730737115396320
8-1.5245848565393982...-0.75730737115396320
9-1.5245848565393982...-0.75730737115396320
10-1.5245848565393982...-0.75730737115396320
11-1.5245848565393982...-0.75730737115396320
12-1.5245848565393982...-0.75730737115396320
13-1.5245848565393982...-0.75730737115396320
14-1.5245848565393982...-0.75730737115396320
15-1.5245848565393982...-0.75730737115396320
16-1.5245848565393982...-0.75730737115396320
17-1.5245848565393982...-0.75730737115396320
18-1.5245848565393982...-0.75730737115396320
19-1.5245848565393982...-0.75730737115396320
20-1.5245848565393982...-0.75730737115396320

Let’s save the result in the Database.

data.to_db(
    name = '"public"."data_normalized"',
    usecols = ["fare", "sex", "survived"],
    relation_type = "table",
)
vp.vDataFrame('"public"."data_normalized"')
123
fare
Numeric(46,28)
99%
...
Abc
sex
Varchar(20)
100%
123
survived
Numeric(63,30)
100%
1-0.5849058045380454...male1.3193977310771285
2-0.5226181577262721...male-0.7573073711539632
3-0.5217481973017847...male-0.7573073711539632
4-0.5217481973017847...male-0.7573073711539632
5-0.5217481973017847...male-0.7573073711539632
6-0.5131207731794659...male-0.7573073711539632
7-0.5126459039521256...male-0.7573073711539632
8-0.5097966885880838...male-0.7573073711539632
9-0.5097966885880838...male-0.7573073711539632
10-0.5097966885880838...male-0.7573073711539632
11-0.5097966885880838...male-0.7573073711539632
12-0.5078174336485294...male-0.7573073711539632
13-0.5078174336485294...male-0.7573073711539632
14-0.5078174336485294...male-0.7573073711539632
15-0.5078174336485294...male-0.7573073711539632
16-0.5078174336485294...male-0.7573073711539632
17-0.5078174336485294...male-0.7573073711539632
18-0.5078174336485294...male-0.7573073711539632
19-0.5078174336485294...male-0.7573073711539632
20-0.5078174336485294...male-0.7573073711539632

Let’s add a split column in the final relation.

data.to_db(
    name = '"public"."data_norm_split"',
    usecols = ["fare", "sex", "survived"],
    relation_type = "table",
    nb_split = 3,
)
vp.vDataFrame('"public"."data_norm_split"')
123
fare
Numeric(46,28)
99%
...
Abc
sex
Varchar(20)
100%
123
_verticapy_split_
Float
100%
1-0.6451344183800711...male1.0
2-0.6451344183800711...male1.0
3-0.6451344183800711...male1.0
4-0.6451344183800711...male1.0
5-0.6451344183800711...male2.0
6-0.6451344183800711...male2.0
7-0.5849058045380454...male1.0
8-0.5148625935053502...male1.0
9-0.5121710347247853...male2.0
10-0.5112212962701047...male1.0
11-0.5112212962701047...male1.0
12-0.5112212962701047...male1.0
13-0.5112212962701047...male1.0
14-0.5111415182399116...male0.0
15-0.5097966885880838...male1.0
16-0.5078972116787226...male1.0
17-0.5078972116787226...male1.0
18-0.5078972116787226...male1.0
19-0.5078972116787226...male1.0
20-0.5078972116787226...male1.0

Let’s use conditions to filter data.

data.to_db(
    name = '"public"."data_norm_filter"',
    usecols = ["fare", "sex", "survived"],
    relation_type = "table",
    db_filter = "sex = 'female'",
)
vp.vDataFrame('"public"."data_norm_filter"')
123
fare
Numeric(46,28)
100%
...
Abc
sex
Varchar(20)
100%
123
survived
Numeric(63,30)
100%
1-0.5017239117232986...female-0.7573073711539632
2-0.49839982713191644...female1.3193977310771285
3-0.49824217054843944...female1.3193977310771285
4-0.49792495790457614...female-0.7573073711539632
5-0.49792495790457614...female-0.7573073711539632
6-0.49792495790457614...female-0.7573073711539632
7-0.49792495790457614...female-0.7573073711539632
8-0.49792495790457614...female-0.7573073711539632
9-0.49792495790457614...female-0.7573073711539632
10-0.49792495790457614...female-0.7573073711539632
11-0.49792495790457614...female-0.7573073711539632
12-0.49792495790457614...female-0.7573073711539632
13-0.49792495790457614...female-0.7573073711539632
14-0.49792495790457614...female-0.7573073711539632
15-0.49792495790457614...female-0.7573073711539632
16-0.4972126540635657...female1.3193977310771285
17-0.4951555205707275...female-0.7573073711539632
18-0.49222652717649246...female1.3193977310771285
19-0.49222652717649246...female1.3193977310771285
20-0.49222652717649246...female1.3193977310771285

Note

The vDataFrame.to_db() method enables you to save the vDataFrame into various types of relations, including views, temporary tables, temporary local tables, and regular tables. It also allows for inserting elements into an existing table, as well as ordering and segmenting the data using the order_by and segmented_by parameters.

See also

vDataFrame.to_csv() : Creates a CSV file of the current vDataFrame structure.
vDataFrame.to_json() : Creates a JSON file of the current vDataFrame structure.