TimeSeries¶
-
class
astropy.timeseries.
TimeSeries
(data=None, *, time=None, time_start=None, time_delta=None, n_samples=None, **kwargs)[source]¶ Bases:
astropy.timeseries.BaseTimeSeries
A class to represent time series data in tabular form.
TimeSeries
provides a class for representing time series as a collection of values of different quantities measured at specific points in time (for time series with finite time bins, see theBinnedTimeSeries
class).TimeSeries
is a sub-class ofQTable
and thus provides all the standard table maniplation methods available to tables, but it also provides additional conveniences for dealing with time series, such as a flexible initializer for setting up the times, a method for folding time series, and atime
attribute for easy access to the time values.See also: http://docs.astropy.org/en/stable/timeseries/
- Parameters
data : numpy ndarray, dict, list,
Table
, or table-like object, optionalData to initialize time series. This does not need to contain the times, which can be provided separately, but if it does contain the times they should be in a column called
'time'
to be automatically recognized.time :
Time
or iterabletime_start :
Time
or strThe time of the first sample in the time series. This is an alternative to providing
time
and requires thattime_delta
is also provided.time_delta :
TimeDelta
orQuantity
The step size in time for the series. This can either be a scalar if the time series is evenly sampled, or an array of values if it is not.
n_samples : int
The number of time samples for the series. This is only used if both
time_start
andtime_delta
are provided and are scalar values.**kwargs : dict, optional
Additional keyword arguments are passed to
QTable
.
Attributes Summary
True if table has any
MaskedColumn
columns.True if column in the table has values which are masked.
True if table has any mixin columns (defined as columns that are not Column subclasses).
Return a TableILoc object that can be used for retrieving indexed rows in the order they appear in the index.
Return the indices associated with columns of the table as a TableIndices object.
Return a TableLoc object that can be used for retrieving rows by index in a given data range.
Return a TableLocIndices object that can be used for retrieving the row indices corresponding to given table index key value or values.
The time values.
Methods Summary
add_column
(*args, **kwargs)See
add_column()
.add_columns
(*args, **kwargs)See
add_columns()
.add_index
(colnames[, engine, unique])Insert a new index among one or more columns.
add_row
([vals, mask])Add a new row to the end of the table.
argsort
([keys, kind, reverse])Return the indices which would sort the table according to one or more key columns.
as_array
([keep_byteorder, names])Return a new copy of the table in the form of a structured np.ndarray or np.ma.MaskedArray object (as appropriate).
Convert bytestring columns (dtype.kind=’S’) to unicode (dtype.kind=’U’) using UTF-8 encoding.
Convert unicode columns (dtype.kind=’U’) to bytestring (dtype.kind=’S’) using UTF-8 encoding.
copy
([copy_data])Return a copy of the table.
field
(item)Return column[item] for recarray compatibility.
filled
([fill_value])Return copy of self, with masked values filled.
fold
([period, epoch_time, epoch_phase, …])Return a new
TimeSeries
folded with a period and epoch.from_pandas
(df[, time_scale])Convert a
DataFrame
to aastropy.timeseries.TimeSeries
.group_by
(keys)Group this table by the specified
keys
index_column
(name)Return the positional index of column
name
.index_mode
(mode)Return a context manager for an indexing mode.
insert_row
(index[, vals, mask])Add a new row before the given
index
position in the table.itercols
()Iterate over the columns of this table.
iterrows
(*names)Iterate over rows of table returning a tuple of values for each row.
keep_columns
(names)Keep only the columns specified (remove the others).
keys
()more
([max_lines, max_width, show_name, …])Interactively browse table with a paging interface.
pformat
([max_lines, max_width, show_name, …])Return a list of lines for the formatted string representation of
pformat_all
([max_lines, max_width, …])Return a list of lines for the formatted string representation of
pprint
([max_lines, max_width, show_name, …])Print a formatted string representation of the table.
pprint_all
([max_lines, max_width, …])Print a formatted string representation of the entire table.
read
(filename[, time_column, time_format, …])Read and parse a file and returns a
astropy.timeseries.TimeSeries
.remove_column
(name)Remove a column from the table.
remove_columns
(names)Remove several columns from the table.
remove_indices
(colname)Remove all indices involving the given column.
remove_row
(index)Remove a row from the table.
remove_rows
(row_specifier)Remove rows from the table.
rename_column
(name, new_name)Rename a column.
rename_columns
(names, new_names)Rename multiple columns.
replace_column
(name, col[, copy])Replace column
name
with the newcol
object.reverse
()Reverse the row order of table rows.
show_in_browser
([max_lines, jsviewer, …])Render the table in HTML and show it in a web browser.
show_in_notebook
([tableid, css, …])Render the table in HTML and show it in the IPython notebook.
sort
([keys, reverse])Sort the table according to one or more keys.
Convert this
TimeSeries
to aDataFrame
with aDatetimeIndex
index.values_equal
(other)Element-wise comparison of table with another table, list, or scalar.
Attributes Documentation
-
ColumnClass
¶
-
colnames
¶
-
dtype
¶
-
groups
¶
-
has_masked_columns
¶ True if table has any
MaskedColumn
columns.This does not check for mixin columns that may have masked values, use the
has_masked_values
property in that case.
-
has_masked_values
¶ True if column in the table has values which are masked.
This may be relatively slow for large tables as it requires checking the mask values of each column.
-
has_mixin_columns
¶ True if table has any mixin columns (defined as columns that are not Column subclasses).
-
iloc
¶ Return a TableILoc object that can be used for retrieving indexed rows in the order they appear in the index.
-
indices
¶ Return the indices associated with columns of the table as a TableIndices object.
-
info
¶
-
loc
¶ Return a TableLoc object that can be used for retrieving rows by index in a given data range. Note that both loc and iloc work only with single-column indices.
-
loc_indices
¶ Return a TableLocIndices object that can be used for retrieving the row indices corresponding to given table index key value or values.
-
mask
¶
-
masked
¶
-
meta
¶
-
time
¶ The time values.
-
write
= <astropy.table.connect.TableWrite object>¶
Methods Documentation
-
add_column
(*args, **kwargs)[source]¶ See
add_column()
.
-
add_columns
(*args, **kwargs)[source]¶ See
add_columns()
.
-
add_index
(colnames, engine=None, unique=False)¶ Insert a new index among one or more columns. If there are no indices, make this index the primary table index.
- Parameters
colnames : str or list
List of column names (or a single column name) to index
engine : type or None
Indexing engine class to use, from among SortedArray, BST, FastBST, FastRBT, and SCEngine. If the supplied argument is None (by default), use SortedArray.
unique : bool
Whether the values of the index must be unique. Default is False.
-
add_row
(vals=None, mask=None)¶ Add a new row to the end of the table.
The
vals
argument can be:- sequence (e.g. tuple or list)
Column values in the same order as table columns.
- mapping (e.g. dict)
Keys corresponding to column names. Missing values will be filled with np.zeros for the column dtype.
None
All values filled with np.zeros for the column dtype.
This method requires that the Table object “owns” the underlying array data. In particular one cannot add a row to a Table that was initialized with copy=False from an existing array.
The
mask
attribute should give (if desired) the mask for the values. The type of the mask should match that of the values, i.e. ifvals
is an iterable, thenmask
should also be an iterable with the same length, and ifvals
is a mapping, thenmask
should be a dictionary.- Parameters
vals : tuple, list, dict or
None
Use the specified values in the new row
mask : tuple, list, dict or
None
Use the specified mask values in the new row
Examples
Create a table with three columns ‘a’, ‘b’ and ‘c’:
>>> t = Table([[1,2],[4,5],[7,8]], names=('a','b','c')) >>> print(t) a b c --- --- --- 1 4 7 2 5 8
Adding a new row with entries ‘3’ in ‘a’, ‘6’ in ‘b’ and ‘9’ in ‘c’:
>>> t.add_row([3,6,9]) >>> print(t) a b c --- --- --- 1 4 7 2 5 8 3 6 9
-
argsort
(keys=None, kind=None, reverse=False)¶ Return the indices which would sort the table according to one or more key columns. This simply calls the
numpy.argsort
function on the table with theorder
parameter set tokeys
.- Parameters
keys : str or list of str
The column name(s) to order the table by
kind : {‘quicksort’, ‘mergesort’, ‘heapsort’}, optional
Sorting algorithm.
reverse : bool
Sort in reverse order (default=False)
- Returns
index_array : ndarray, int
Array of indices that sorts the table by the specified key column(s).
-
as_array
(keep_byteorder=False, names=None)¶ Return a new copy of the table in the form of a structured np.ndarray or np.ma.MaskedArray object (as appropriate).
- Parameters
keep_byteorder : bool, optional
By default the returned array has all columns in native byte order. However, if this option is
True
this preserves the byte order of all columns (if any are non-native).names : list, optional:
List of column names to include for returned structured array. Default is to include all table columns.
- Returns
table_array : np.ndarray (unmasked) or np.ma.MaskedArray (masked)
Copy of table as a numpy structured array
-
convert_bytestring_to_unicode
()¶ Convert bytestring columns (dtype.kind=’S’) to unicode (dtype.kind=’U’) using UTF-8 encoding.
Internally this changes string columns to represent each character in the string with a 4-byte UCS-4 equivalent, so it is inefficient for memory but allows scripts to manipulate string arrays with natural syntax.
-
convert_unicode_to_bytestring
()¶ Convert unicode columns (dtype.kind=’U’) to bytestring (dtype.kind=’S’) using UTF-8 encoding.
When exporting a unicode string array to a file, it may be desirable to encode unicode columns as bytestrings.
-
copy
(copy_data=True)¶ Return a copy of the table.
- Parameters
copy_data : bool
If
True
(the default), copy the underlying data array. Otherwise, use the same data array. Themeta
is always deepcopied regardless of the value forcopy_data
.
-
field
(item)¶ Return column[item] for recarray compatibility.
-
filled
(fill_value=None)¶ Return copy of self, with masked values filled.
If input
fill_value
supplied then that value is used for all masked entries in the table. Otherwise the individualfill_value
defined for each table column is used.- Parameters
fill_value : str
If supplied, this
fill_value
is used for all masked entries in the entire table.- Returns
filled_table : Table
New table with masked values filled
-
fold
(period=None, epoch_time=None, epoch_phase=0, wrap_phase=None, normalize_phase=False)[source]¶ Return a new
TimeSeries
folded with a period and epoch.- Parameters
period :
Quantity
The period to use for folding
epoch_time :
Time
The time to use as the reference epoch, at which the relative time offset / phase will be
epoch_phase
. Defaults to the first time in the time series.epoch_phase : float or
Quantity
Phase of
epoch_time
. Ifnormalize_phase
isTrue
, this should be a dimensionless value, while ifnormalize_phase
isFalse
, this should be aQuantity
with time units. Defaults to 0.wrap_phase : float or
Quantity
The value of the phase above which values are wrapped back by one period. If
normalize_phase
isTrue
, this should be a dimensionless value, while ifnormalize_phase
isFalse
, this should be aQuantity
with time units. Defaults to half the period, so that the resulting time series goes from-period / 2
toperiod / 2
(ifnormalize_phase
isFalse
) or -0.5 to 0.5 (ifnormalize_phase
isTrue
).normalize_phase : bool
- Returns
folded_timeseries :
TimeSeries
The folded time series object with phase as the
time
column.
-
classmethod
from_pandas
(df, time_scale='utc')[source]¶ Convert a
DataFrame
to aastropy.timeseries.TimeSeries
.- Parameters
df :
pandas.DataFrame
A pandas
pandas.DataFrame
instance.time_scale : str
The time scale to pass into
astropy.time.Time
. Defaults toUTC
.
-
group_by
(keys)¶ Group this table by the specified
keys
This effectively splits the table into groups which correspond to unique values of the
keys
grouping object. The output is a newTableGroups
which contains a copy of this table but sorted by row according tokeys
.The
keys
input togroup_by
can be specified in different ways:String or list of strings corresponding to table column name(s)
Numpy array (homogeneous or structured) with same length as this table
Table
with same length as this table
-
index_column
(name)¶ Return the positional index of column
name
.- Parameters
name : str
column name
- Returns
index : int
Positional index of column
name
.
Examples
Create a table with three columns ‘a’, ‘b’ and ‘c’:
>>> t = Table([[1, 2, 3], [0.1, 0.2, 0.3], ['x', 'y', 'z']], ... names=('a', 'b', 'c')) >>> print(t) a b c --- --- --- 1 0.1 x 2 0.2 y 3 0.3 z
Get index of column ‘b’ of the table:
>>> t.index_column('b') 1
-
index_mode
(mode)¶ Return a context manager for an indexing mode.
- Parameters
mode : str
Either ‘freeze’, ‘copy_on_getitem’, or ‘discard_on_copy’. In ‘discard_on_copy’ mode, indices are not copied whenever columns or tables are copied. In ‘freeze’ mode, indices are not modified whenever columns are modified; at the exit of the context, indices refresh themselves based on column values. This mode is intended for scenarios in which one intends to make many additions or modifications in an indexed column. In ‘copy_on_getitem’ mode, indices are copied when taking column slices as well as table slices, so col[i0:i1] will preserve indices.
-
insert_row
(index, vals=None, mask=None)¶ Add a new row before the given
index
position in the table.The
vals
argument can be:- sequence (e.g. tuple or list)
Column values in the same order as table columns.
- mapping (e.g. dict)
Keys corresponding to column names. Missing values will be filled with np.zeros for the column dtype.
None
All values filled with np.zeros for the column dtype.
The
mask
attribute should give (if desired) the mask for the values. The type of the mask should match that of the values, i.e. ifvals
is an iterable, thenmask
should also be an iterable with the same length, and ifvals
is a mapping, thenmask
should be a dictionary.- Parameters
vals : tuple, list, dict or
None
Use the specified values in the new row
mask : tuple, list, dict or
None
Use the specified mask values in the new row
-
itercols
()¶ Iterate over the columns of this table.
Examples
To iterate over the columns of a table:
>>> t = Table([[1], [2]]) >>> for col in t.itercols(): ... print(col) col0 ---- 1 col1 ---- 2
Using
itercols()
is similar tofor col in t.columns.values()
but is syntactically preferred.
-
iterrows
(*names)¶ Iterate over rows of table returning a tuple of values for each row.
This method is especially useful when only a subset of columns are needed.
The
iterrows
method can be substantially faster than using the standard Table row iteration (e.g.for row in tbl:
), since that returns a new~astropy.table.Row
object for each row and accessing a column in that row (e.g.row['col0']
) is slower than tuple access.- Parameters
names : list
List of column names (default to all columns if no names provided)
- Returns
rows : iterator returning tuples of row values
Examples
Create a table with three columns ‘a’, ‘b’ and ‘c’:
>>> t = Table({'a': [1, 2, 3], ... 'b': [1.0, 2.5, 3.0], ... 'c': ['x', 'y', 'z']})
To iterate row-wise using column names:
>>> for a, c in t.iterrows('a', 'c'): ... print(a, c) 1 x 2 y 3 z
-
keep_columns
(names)¶ Keep only the columns specified (remove the others).
- Parameters
names : list
A list containing the names of the columns to keep. All other columns will be removed.
Examples
Create a table with three columns ‘a’, ‘b’ and ‘c’:
>>> t = Table([[1, 2, 3],[0.1, 0.2, 0.3],['x', 'y', 'z']], ... names=('a', 'b', 'c')) >>> print(t) a b c --- --- --- 1 0.1 x 2 0.2 y 3 0.3 z
Specifying only a single column name keeps only this column. Keep only column ‘a’ of the table:
>>> t.keep_columns('a') >>> print(t) a --- 1 2 3
Specifying a list of column names is keeps is also possible. Keep columns ‘a’ and ‘c’ of the table:
>>> t = Table([[1, 2, 3],[0.1, 0.2, 0.3],['x', 'y', 'z']], ... names=('a', 'b', 'c')) >>> t.keep_columns(['a', 'c']) >>> print(t) a c --- --- 1 x 2 y 3 z
-
keys
()¶
-
more
(max_lines=None, max_width=None, show_name=True, show_unit=None, show_dtype=False)¶ Interactively browse table with a paging interface.
Supported keys:
f, <space> : forward one page b : back one page r : refresh same page n : next row p : previous row < : go to beginning > : go to end q : quit browsing h : print this help
- Parameters
max_lines : int
Maximum number of lines in table output
max_width : int or
None
Maximum character width of output
show_name : bool
Include a header row for column names. Default is True.
show_unit : bool
Include a header row for unit. Default is to show a row for units only if one or more columns has a defined value for the unit.
show_dtype : bool
Include a header row for column dtypes. Default is True.
-
pformat
(max_lines=None, max_width=None, show_name=True, show_unit=None, show_dtype=False, html=False, tableid=None, align=None, tableclass=None)¶ - Return a list of lines for the formatted string representation of
the table.
If no value of
max_lines
is supplied then the height of the screen terminal is used to setmax_lines
. If the terminal height cannot be determined then the default is taken from the configuration itemastropy.conf.max_lines
. If a negative value ofmax_lines
is supplied then there is no line limit applied.The same applies for
max_width
except the configuration item isastropy.conf.max_width
.
- Parameters
max_lines : int or
None
Maximum number of rows to output
max_width : int or
None
Maximum character width of output
show_name : bool
Include a header row for column names. Default is True.
show_unit : bool
Include a header row for unit. Default is to show a row for units only if one or more columns has a defined value for the unit.
show_dtype : bool
Include a header row for column dtypes. Default is True.
html : bool
Format the output as an HTML table. Default is False.
tableid : str or
None
An ID tag for the table; only used if html is set. Default is “table{id}”, where id is the unique integer id of the table object, id(self)
align : str or list or tuple or
None
Left/right alignment of columns. Default is right (None) for all columns. Other allowed values are ‘>’, ‘<’, ‘^’, and ‘0=’ for right, left, centered, and 0-padded, respectively. A list of strings can be provided for alignment of tables with multiple columns.
tableclass : str or list of str or
None
CSS classes for the table; only used if html is set. Default is None.
- Returns
lines : list
Formatted table as a list of strings.
-
pformat_all
(max_lines=-1, max_width=-1, show_name=True, show_unit=None, show_dtype=False, html=False, tableid=None, align=None, tableclass=None)¶ - Return a list of lines for the formatted string representation of
the entire table.
If no value of
max_lines
is supplied then the height of the screen terminal is used to setmax_lines
. If the terminal height cannot be determined then the default is taken from the configuration itemastropy.conf.max_lines
. If a negative value ofmax_lines
is supplied then there is no line limit applied.The same applies for
max_width
except the configuration item isastropy.conf.max_width
.
- Parameters
max_lines : int or
None
Maximum number of rows to output
max_width : int or
None
Maximum character width of output
show_name : bool
Include a header row for column names. Default is True.
show_unit : bool
Include a header row for unit. Default is to show a row for units only if one or more columns has a defined value for the unit.
show_dtype : bool
Include a header row for column dtypes. Default is True.
html : bool
Format the output as an HTML table. Default is False.
tableid : str or
None
An ID tag for the table; only used if html is set. Default is “table{id}”, where id is the unique integer id of the table object, id(self)
align : str or list or tuple or
None
Left/right alignment of columns. Default is right (None) for all columns. Other allowed values are ‘>’, ‘<’, ‘^’, and ‘0=’ for right, left, centered, and 0-padded, respectively. A list of strings can be provided for alignment of tables with multiple columns.
tableclass : str or list of str or
None
CSS classes for the table; only used if html is set. Default is None.
- Returns
lines : list
Formatted table as a list of strings.
-
pprint
(max_lines=None, max_width=None, show_name=True, show_unit=None, show_dtype=False, align=None)¶ Print a formatted string representation of the table.
If no value of
max_lines
is supplied then the height of the screen terminal is used to setmax_lines
. If the terminal height cannot be determined then the default is taken from the configuration itemastropy.conf.max_lines
. If a negative value ofmax_lines
is supplied then there is no line limit applied.The same applies for max_width except the configuration item is
astropy.conf.max_width
.- Parameters
max_lines : int or
None
Maximum number of lines in table output.
max_width : int or
None
Maximum character width of output.
show_name : bool
Include a header row for column names. Default is True.
show_unit : bool
Include a header row for unit. Default is to show a row for units only if one or more columns has a defined value for the unit.
show_dtype : bool
Include a header row for column dtypes. Default is True.
align : str or list or tuple or
None
Left/right alignment of columns. Default is right (None) for all columns. Other allowed values are ‘>’, ‘<’, ‘^’, and ‘0=’ for right, left, centered, and 0-padded, respectively. A list of strings can be provided for alignment of tables with multiple columns.
-
pprint_all
(max_lines=-1, max_width=-1, show_name=True, show_unit=None, show_dtype=False, align=None)¶ Print a formatted string representation of the entire table.
This method is the same as
astropy.table.Table.pprint
except that the defaultmax_lines
andmax_width
are both -1 so that by default the entire table is printed instead of restricting to the size of the screen terminal.- Parameters
max_lines : int or
None
Maximum number of lines in table output.
max_width : int or
None
Maximum character width of output.
show_name : bool
Include a header row for column names. Default is True.
show_unit : bool
Include a header row for unit. Default is to show a row for units only if one or more columns has a defined value for the unit.
show_dtype : bool
Include a header row for column dtypes. Default is True.
align : str or list or tuple or
None
Left/right alignment of columns. Default is right (None) for all columns. Other allowed values are ‘>’, ‘<’, ‘^’, and ‘0=’ for right, left, centered, and 0-padded, respectively. A list of strings can be provided for alignment of tables with multiple columns.
-
classmethod
read
(filename, time_column=None, time_format=None, time_scale=None, format=None, *args, **kwargs)[source]¶ Read and parse a file and returns a
astropy.timeseries.TimeSeries
.This method uses the unified I/O infrastructure in Astropy which makes it easy to define readers/writers for various classes (http://docs.astropy.org/en/stable/io/unified.html). By default, this method will try and use readers defined specifically for the
astropy.timeseries.TimeSeries
class - however, it is also possible to use theformat
keyword to specify formats defined for theastropy.table.Table
class - in this case, you will need to also provide the column names for column containing the start times for the bins, as well as other column names (see the Parameters section below for details):>>> from astropy.timeseries import TimeSeries >>> ts = TimeSeries.read('sampled.dat', format='ascii.ecsv', ... time_column='date')
- Parameters
filename : str
File to parse.
format : str
File format specifier.
time_column : str, optional
The name of the time column.
time_format : str, optional
The time format for the time column.
time_scale : str, optional
The time scale for the time column.
*args : tuple, optional
Positional arguments passed through to the data reader.
**kwargs : dict, optional
Keyword arguments passed through to the data reader.
- Returns
out :
astropy.timeseries.TimeSeries
TimeSeries corresponding to file contents.
Notes
The available built-in formats are:
Format
Read
Write
Auto-identify
kepler.fits
Yes
No
No
tess.fits
Yes
No
No
-
remove_column
(name)¶ Remove a column from the table.
This can also be done with:
del table[name]
- Parameters
name : str
Name of column to remove
Examples
Create a table with three columns ‘a’, ‘b’ and ‘c’:
>>> t = Table([[1, 2, 3], [0.1, 0.2, 0.3], ['x', 'y', 'z']], ... names=('a', 'b', 'c')) >>> print(t) a b c --- --- --- 1 0.1 x 2 0.2 y 3 0.3 z
Remove column ‘b’ from the table:
>>> t.remove_column('b') >>> print(t) a c --- --- 1 x 2 y 3 z
To remove several columns at the same time use remove_columns.
-
remove_columns
(names)¶ Remove several columns from the table.
- Parameters
names : list
A list containing the names of the columns to remove
Examples
Create a table with three columns ‘a’, ‘b’ and ‘c’:
>>> t = Table([[1, 2, 3], [0.1, 0.2, 0.3], ['x', 'y', 'z']], ... names=('a', 'b', 'c')) >>> print(t) a b c --- --- --- 1 0.1 x 2 0.2 y 3 0.3 z
Remove columns ‘b’ and ‘c’ from the table:
>>> t.remove_columns(['b', 'c']) >>> print(t) a --- 1 2 3
Specifying only a single column also works. Remove column ‘b’ from the table:
>>> t = Table([[1, 2, 3], [0.1, 0.2, 0.3], ['x', 'y', 'z']], ... names=('a', 'b', 'c')) >>> t.remove_columns('b') >>> print(t) a c --- --- 1 x 2 y 3 z
This gives the same as using remove_column.
-
remove_indices
(colname)¶ Remove all indices involving the given column. If the primary index is removed, the new primary index will be the most recently added remaining index.
- Parameters
colname : str
Name of column
-
remove_row
(index)¶ Remove a row from the table.
- Parameters
index : int
Index of row to remove
Examples
Create a table with three columns ‘a’, ‘b’ and ‘c’:
>>> t = Table([[1, 2, 3], [0.1, 0.2, 0.3], ['x', 'y', 'z']], ... names=('a', 'b', 'c')) >>> print(t) a b c --- --- --- 1 0.1 x 2 0.2 y 3 0.3 z
Remove row 1 from the table:
>>> t.remove_row(1) >>> print(t) a b c --- --- --- 1 0.1 x 3 0.3 z
To remove several rows at the same time use remove_rows.
-
remove_rows
(row_specifier)¶ Remove rows from the table.
- Parameters
row_specifier : slice, int, or array of ints
Specification for rows to remove
Examples
Create a table with three columns ‘a’, ‘b’ and ‘c’:
>>> t = Table([[1, 2, 3], [0.1, 0.2, 0.3], ['x', 'y', 'z']], ... names=('a', 'b', 'c')) >>> print(t) a b c --- --- --- 1 0.1 x 2 0.2 y 3 0.3 z
Remove rows 0 and 2 from the table:
>>> t.remove_rows([0, 2]) >>> print(t) a b c --- --- --- 2 0.2 y
Note that there are no warnings if the slice operator extends outside the data:
>>> t = Table([[1, 2, 3], [0.1, 0.2, 0.3], ['x', 'y', 'z']], ... names=('a', 'b', 'c')) >>> t.remove_rows(slice(10, 20, 1)) >>> print(t) a b c --- --- --- 1 0.1 x 2 0.2 y 3 0.3 z
-
rename_column
(name, new_name)¶ Rename a column.
This can also be done directly with by setting the
name
attribute for a column:table[name].name = new_name
TODO: this won’t work for mixins
- Parameters
name : str
The current name of the column.
new_name : str
The new name for the column
Examples
Create a table with three columns ‘a’, ‘b’ and ‘c’:
>>> t = Table([[1,2],[3,4],[5,6]], names=('a','b','c')) >>> print(t) a b c --- --- --- 1 3 5 2 4 6
Renaming column ‘a’ to ‘aa’:
>>> t.rename_column('a' , 'aa') >>> print(t) aa b c --- --- --- 1 3 5 2 4 6
-
rename_columns
(names, new_names)¶ Rename multiple columns.
- Parameters
names : list, tuple
A list or tuple of existing column names.
new_names : list, tuple
A list or tuple of new column names.
Examples
Create a table with three columns ‘a’, ‘b’, ‘c’:
>>> t = Table([[1,2],[3,4],[5,6]], names=('a','b','c')) >>> print(t) a b c --- --- --- 1 3 5 2 4 6
Renaming columns ‘a’ to ‘aa’ and ‘b’ to ‘bb’:
>>> names = ('a','b') >>> new_names = ('aa','bb') >>> t.rename_columns(names, new_names) >>> print(t) aa bb c --- --- --- 1 3 5 2 4 6
-
replace_column
(name, col, copy=True)¶ Replace column
name
with the newcol
object.The behavior of
copy
for Column objects is: - copy=True: new class instance with a copy of data and deep copy of meta - copy=False: new class instance with same data and a key-only copy of metaFor mixin columns: - copy=True: new class instance with copy of data and deep copy of meta - copy=False: original instance (no copy at all)
- Parameters
name : str
Name of column to replace
col : column object (list, ndarray, Column, etc)
New column object to replace the existing column
copy : bool
Make copy of the input
col
, default=True
Examples
Replace column ‘a’ with a float version of itself:
>>> t = Table([[1, 2, 3], [0.1, 0.2, 0.3]], names=('a', 'b')) >>> float_a = t['a'].astype(float) >>> t.replace_column('a', float_a)
-
reverse
()¶ Reverse the row order of table rows. The table is reversed in place and there are no function arguments.
Examples
Create a table with three columns:
>>> t = Table([['Max', 'Jo', 'John'], ['Miller','Miller','Jackson'], ... [12,15,18]], names=('firstname','name','tel')) >>> print(t) firstname name tel --------- ------- --- Max Miller 12 Jo Miller 15 John Jackson 18
Reversing order:
>>> t.reverse() >>> print(t) firstname name tel --------- ------- --- John Jackson 18 Jo Miller 15 Max Miller 12
-
show_in_browser
(max_lines=5000, jsviewer=False, browser='default', jskwargs={'use_local_files': True}, tableid=None, table_class='display compact', css=None, show_row_index='idx')¶ Render the table in HTML and show it in a web browser.
- Parameters
max_lines : int
Maximum number of rows to export to the table (set low by default to avoid memory issues, since the browser view requires duplicating the table in memory). A negative value of
max_lines
indicates no row limit.jsviewer : bool
If
True
, prepends some javascript headers so that the table is rendered as a DataTables data table. This allows in-browser searching & sorting.browser : str
Any legal browser name, e.g.
'firefox'
,'chrome'
,'safari'
(for mac, you may need to use'open -a "/Applications/Google Chrome.app" {}'
for Chrome). If'default'
, will use the system default browser.jskwargs : dict
Passed to the
astropy.table.JSViewer
init. Defaults to{'use_local_files': True}
which means that the JavaScript libraries will be served from local copies.tableid : str or
None
An html ID tag for the table. Default is
table{id}
, where id is the unique integer id of the table object, id(self).table_class : str or
None
A string with a list of HTML classes used to style the table. Default is “display compact”, and other possible values can be found in https://www.datatables.net/manual/styling/classes
css : str
A valid CSS string declaring the formatting for the table. Defaults to
astropy.table.jsviewer.DEFAULT_CSS
.show_row_index : str or False
If this does not evaluate to False, a column with the given name will be added to the version of the table that gets displayed. This new column shows the index of the row in the table itself, even when the displayed table is re-sorted by another column. Note that if a column with this name already exists, this option will be ignored. Defaults to “idx”.
-
show_in_notebook
(tableid=None, css=None, display_length=50, table_class='astropy-default', show_row_index='idx')¶ Render the table in HTML and show it in the IPython notebook.
- Parameters
tableid : str or
None
An html ID tag for the table. Default is
table{id}-XXX
, where id is the unique integer id of the table object, id(self), and XXX is a random number to avoid conflicts when printing the same table multiple times.table_class : str or
None
A string with a list of HTML classes used to style the table. The special default string (‘astropy-default’) means that the string will be retrieved from the configuration item
astropy.table.default_notebook_table_class
. Note that these table classes may make use of bootstrap, as this is loaded with the notebook. See this page for the list of classes.css : str
A valid CSS string declaring the formatting for the table. Defaults to
astropy.table.jsviewer.DEFAULT_CSS_NB
.display_length : int, optional
Number or rows to show. Defaults to 50.
show_row_index : str or False
If this does not evaluate to False, a column with the given name will be added to the version of the table that gets displayed. This new column shows the index of the row in the table itself, even when the displayed table is re-sorted by another column. Note that if a column with this name already exists, this option will be ignored. Defaults to “idx”.
Notes
Currently, unlike
show_in_browser
(withjsviewer=True
), this method needs to access online javascript code repositories. This is due to modern browsers’ limitations on accessing local files. Hence, if you call this method while offline (and don’t have a cached version of jquery and jquery.dataTables), you will not get the jsviewer features.
-
sort
(keys=None, reverse=False)¶ Sort the table according to one or more keys. This operates on the existing table and does not return a new table.
- Parameters
keys : str or list of str
The key(s) to order the table by. If None, use the primary index of the Table.
reverse : bool
Sort in reverse order (default=False)
Examples
Create a table with 3 columns:
>>> t = Table([['Max', 'Jo', 'John'], ['Miller', 'Miller', 'Jackson'], ... [12, 15, 18]], names=('firstname', 'name', 'tel')) >>> print(t) firstname name tel --------- ------- --- Max Miller 12 Jo Miller 15 John Jackson 18
Sorting according to standard sorting rules, first ‘name’ then ‘firstname’:
>>> t.sort(['name', 'firstname']) >>> print(t) firstname name tel --------- ------- --- John Jackson 18 Jo Miller 15 Max Miller 12
Sorting according to standard sorting rules, first ‘firstname’ then ‘tel’, in reverse order:
>>> t.sort(['firstname', 'tel'], reverse=True) >>> print(t) firstname name tel --------- ------- --- Max Miller 12 John Jackson 18 Jo Miller 15
-
to_pandas
()[source]¶ Convert this
TimeSeries
to aDataFrame
with aDatetimeIndex
index.- Returns
dataframe :
pandas.DataFrame
A pandas
pandas.DataFrame
instance
-
values_equal
(other)¶ Element-wise comparison of table with another table, list, or scalar.
Returns a
Table
with the same columns containing boolean values showing result of comparison.- Parameters
other : Table-like object or list or scalar
Object to compare with table
Examples
Compare one Table with other:
>>> t1 = Table([[1, 2], [4, 5], [-7, 8]], names=('a', 'b', 'c')) >>> t2 = Table([[1, 2], [-4, 5], [7, 8]], names=('a', 'b', 'c')) >>> t1.values_equal(t2) <Table length=2> a b c bool bool bool ---- ----- ----- True False False True True True