# datascience.tables.Table.with_columns¶

Table.with_columns(*labels_and_values)[source]

Return a table with additional or replaced columns.

Args:
labels_and_values: An alternating list of labels and values or
a list of label-value pairs. If one of the labels is in existing table, then every value in the corresponding column is set to that value. If label has only a single value (int), every row of corresponding column takes on that value.
Raises:
ValueError: If
• any label in labels_and_values is not a valid column
name, i.e if label is not of type (str).
• if any value in labels_and_values is a list/array and
does not have the same length as the number of rows in the table.
AssertionError:
• ‘incorrect columns format’, if passed more than one sequence
(iterables) for labels_and_values.
• ‘even length sequence required’ if missing a pair in
label-value pairs.
Returns:
Copy of original table with new or replaced columns. Columns added in order of labels. Equivalent to with_column(label, value) when passed only one label-value pair.
>>> players = Table().with_columns('player_id',
...     make_array(110234, 110235), 'wOBA', make_array(.354, .236))
>>> players
player_id  | wOBA
110,234    | 0.354
110,235    | 0.236
>>> players = players.with_columns('salaries', 'N/A', 'season', 2016)
>>> players
player_id  | wOBA  | salaries | season
110,234    | 0.354 | N/A      | 2,016
110,235    | 0.236 | N/A      | 2,016
>>> salaries = Table().with_column('salary',
...     make_array('$500,000', '$15,500,000'))
>>> players.with_columns('salaries', salaries.column('salary'),
...     'years', make_array(6, 1))
player_id  | wOBA  | salaries    | season  | years
110,234    | 0.354 | $500,000 | 2,016 | 6 110,235 | 0.236 |$15,500,000 | 2,016   | 1
>>> players.with_columns(2, make_array('$600,000', '$20,000,000'))
Traceback (most recent call last):
...
ValueError: The column label must be a string, but a int was given
>>> players.with_columns('salaries', make_array('\$600,000'))
Traceback (most recent call last):
...
ValueError: Column length mismatch. New column does not have the same number of rows as table.