-
craftutils.wrap.dragons.Table.to_pandas(index=
None, use_nullable_int=True) Return a
pandas.DataFrameinstanceThe index of the created DataFrame is controlled by the
indexargument. Forindex=Trueor the defaultNone, an index will be specified for the DataFrame if there is a primary key index on the Table and if it corresponds to a single column. Ifindex=Falsethen no DataFrame index will be specified. Ifindexis the name of a column in the table then that will be the DataFrame index.In addition to vanilla columns or masked columns, this supports Table mixin columns like Quantity, Time, or SkyCoord. In many cases these objects have no analog in pandas and will be converted to a “encoded” representation using only Column or MaskedColumn. The exception is Time or TimeDelta columns, which will be converted to the corresponding representation in pandas using
np.datetime64ornp.timedelta64. See the example below.Parameters¶
- indexNone, bool, str
Specify DataFrame index mode
- use_nullable_intbool, default=True
Convert integer MaskedColumn to pandas nullable integer type. If
use_nullable_int=Falseor the pandas version does not support nullable integer types (version < 0.24), then the column is converted to float with NaN for missing elements and a warning is issued.
Returns¶
- dataframe
pandas.DataFrame A pandas
pandas.DataFrameinstance
Raises¶
- ImportError
If pandas is not installed
- ValueError
If the Table has multi-dimensional columns
Examples¶
Here we convert a table with a few mixins to a
pandas.DataFrameinstance.>>> import pandas as pd >>> from astropy.table import QTable >>> import astropy.units as u >>> from astropy.time import Time, TimeDelta >>> from astropy.coordinates import SkyCoord>>> q = [1, 2] * u.m >>> tm = Time([1998, 2002], format='jyear') >>> sc = SkyCoord([5, 6], [7, 8], unit='deg') >>> dt = TimeDelta([3, 200] * u.s)>>> t = QTable([q, tm, sc, dt], names=['q', 'tm', 'sc', 'dt'])>>> df = t.to_pandas(index='tm') >>> with pd.option_context('display.max_columns', 20): ... print(df) q sc.ra sc.dec dt tm 1998-01-01 1.0 5.0 7.0 0 days 00:00:03 2002-01-01 2.0 6.0 8.0 0 days 00:03:20