def select_as_dataframe(self, table_name, columns=None, where=None, extra=None):
import pandas<EOL>if columns is None:<EOL><INDENT>columns = self.fetch_attr_names(table_name)<EOL><DEDENT>result = self.select(<EOL>select=AttrList(columns), table_name=table_name, where=where, extra=extra<EOL>)<EOL>if result is None:<EOL><INDENT>return pandas.DataFrame()<EOL><DEDENT>return pandas.DataFrame(result.fetchall(), columns=columns)<EOL>
Get data in the database and return fetched data as a
:py:class:`pandas.Dataframe` instance.

:param str table_name: |arg_select_table_name|
:param list columns: |arg_select_as_xx_columns|
:param str where: |arg_select_where|
:param str extra: |arg_select_extra|
:return: Table data as a :py:class:`pandas.Dataframe` instance.
:rtype: pandas.DataFrame
:raises simplesqlite.NullDatabaseConnectionError:
    |raises_check_connection|
:raises simplesqlite.TableNotFoundError:
    |raises_verify_table_existence|
:raises simplesqlite.OperationalError: |raises_operational_error|

:Example:
    :ref:`example-select-as-dataframe`

.. note::
    ``pandas`` package required to execute this method.