-
craftutils.wrap.dragons.Table.add_column(col, index=
None, name=None, rename_duplicate=False, copy=True, default_name=None) Add a new column to the table using
colas input. Ifindexis supplied then insert column beforeindexposition in the list of columns, otherwise append column to the end of the list.The
colinput can be any data object which is acceptable as a ~astropy.table.Table column object or can be converted. This includes mixin columns and scalar or length=1 objects which get broadcast to match the table length.To add several columns at once use
add_columns()or simply calladd_column()for each one. There is very little performance difference in the two approaches.Parameters¶
- colobject
Data object for the new column
- indexint or None
Insert column before this position or at end (default).
- namestr
Column name
- rename_duplicatebool
Uniquify column name if it already exist. Default is False.
- copybool
Make a copy of the new column. Default is True.
- default_namestr or None
Name to use if both
nameandcol.info.nameare not available. Defaults tocol{number_of_columns}.
Examples¶
Create a table with two columns ‘a’ and ‘b’, then create a third column ‘c’ and append it to the end of the table:
>>> t = Table([[1, 2], [0.1, 0.2]], names=('a', 'b')) >>> col_c = Column(name='c', data=['x', 'y']) >>> t.add_column(col_c) >>> print(t) a b c --- --- --- 1 0.1 x 2 0.2 yAdd column ‘d’ at position 1. Note that the column is inserted before the given index:
>>> t.add_column(['a', 'b'], name='d', index=1) >>> print(t) a d b c --- --- --- --- 1 a 0.1 x 2 b 0.2 yAdd second column named ‘b’ with rename_duplicate:
>>> t = Table([[1, 2], [0.1, 0.2]], names=('a', 'b')) >>> t.add_column(1.1, name='b', rename_duplicate=True) >>> print(t) a b b_1 --- --- --- 1 0.1 1.1 2 0.2 1.1Add an unnamed column or mixin object in the table using a default name or by specifying an explicit name with
name. Name can also be overridden:>>> t = Table([[1, 2], [0.1, 0.2]], names=('a', 'b')) >>> t.add_column(['a', 'b']) >>> t.add_column(col_c, name='d') >>> print(t) a b col2 d --- --- ---- --- 1 0.1 a x 2 0.2 b y