コード例 #1
0
def test_ampstoxml():
    data = {'netid':['sisfrance'],
            'code':[1],
            'name':['m1'],
            'loc':['somewhere'],
            'lat':[32.7],
            'lon':[-145.6],
            'dist':[23.6],
            'source':['sisfrance'],
            'insttype':['OBSERVED'],
            'commtype':['UNK'],
            'intensity':[4.7]}
    df = pd.DataFrame(data=data)    
    ret = Retriever(os.path.expanduser('~'),os.path.expanduser('~'))
    eventinfo = {'id':'usp0007m27',
            'time':datetime.utcnow(),
            'lat':46.015,
            'lon':5.977,
            'depth':5.0,
            'mag':4.5,
            'location':'France',
            'time':datetime(1996,7,15,0,13,28),
            'network':'us'}
    ret.setEventInfo(eventinfo)
    xmlstr = ret.ampsToXML(amps=df)
    df2 = ret.xmlToAmps(xmlstr)
    w = pd.get_option("display.max_columns")
    pd.set_option("display.max_columns",200)
    w2 = pd.get_option("display.max_columns")
    pd.set_option('display.max_columns', 500)
    pd.set_option('display.expand_frame_repr', False)
    print(df)
    print()
    print(df2[df.columns])
コード例 #2
0
ファイル: test_clipboard.py プロジェクト: cpcloud/pandas
    def setup_class(cls):
        cls.data = {}
        cls.data['string'] = mkdf(5, 3, c_idx_type='s', r_idx_type='i',
                                  c_idx_names=[None], r_idx_names=[None])
        cls.data['int'] = mkdf(5, 3, data_gen_f=lambda *args: randint(2),
                               c_idx_type='s', r_idx_type='i',
                               c_idx_names=[None], r_idx_names=[None])
        cls.data['float'] = mkdf(5, 3,
                                 data_gen_f=lambda r, c: float(r) + 0.01,
                                 c_idx_type='s', r_idx_type='i',
                                 c_idx_names=[None], r_idx_names=[None])
        cls.data['mixed'] = DataFrame({'a': np.arange(1.0, 6.0) + 0.01,
                                       'b': np.arange(1, 6),
                                       'c': list('abcde')})

        # Test columns exceeding "max_colwidth" (GH8305)
        _cw = get_option('display.max_colwidth') + 1
        cls.data['colwidth'] = mkdf(5, 3, data_gen_f=lambda *args: 'x' * _cw,
                                    c_idx_type='s', r_idx_type='i',
                                    c_idx_names=[None], r_idx_names=[None])
        # Test GH-5346
        max_rows = get_option('display.max_rows')
        cls.data['longdf'] = mkdf(max_rows + 1, 3,
                                  data_gen_f=lambda *args: randint(2),
                                  c_idx_type='s', r_idx_type='i',
                                  c_idx_names=[None], r_idx_names=[None])
        # Test for non-ascii text: GH9263
        cls.data['nonascii'] = pd.DataFrame({'en': 'in English'.split(),
                                             'es': 'en español'.split()})
        # unicode round trip test for GH 13747, GH 12529
        cls.data['utf8'] = pd.DataFrame({'a': ['µasd', 'Ωœ∑´'],
                                         'b': ['øπ∆˚¬', 'œ∑´®']})
        cls.data_types = list(cls.data.keys())
コード例 #3
0
ファイル: console.py プロジェクト: bashtage/pandas
 def check_main():
     try:
         import __main__ as main
     except ModuleNotFoundError:
         return get_option('mode.sim_interactive')
     return (not hasattr(main, '__file__') or
             get_option('mode.sim_interactive'))
コード例 #4
0
ファイル: test_format.py プロジェクト: rymurr/pandas
 def _f(*args, **kwargs):
     old_max_rows = pd.get_option("display.max_rows")
     old_max_info_rows = pd.get_option("display.max_info_rows")
     o = f(*args, **kwargs)
     pd.set_option("display.max_rows", old_max_rows)
     pd.set_option("display.max_info_rows", old_max_info_rows)
     return o
コード例 #5
0
ファイル: test_clipboard.py プロジェクト: souravsingh/pandas
    def setUpClass(cls):
        super(TestClipboard, cls).setUpClass()
        cls.data = {}
        cls.data['string'] = mkdf(5, 3, c_idx_type='s', r_idx_type='i',
                                  c_idx_names=[None], r_idx_names=[None])
        cls.data['int'] = mkdf(5, 3, data_gen_f=lambda *args: randint(2),
                               c_idx_type='s', r_idx_type='i',
                               c_idx_names=[None], r_idx_names=[None])
        cls.data['float'] = mkdf(5, 3,
                                 data_gen_f=lambda r, c: float(r) + 0.01,
                                 c_idx_type='s', r_idx_type='i',
                                 c_idx_names=[None], r_idx_names=[None])
        cls.data['mixed'] = DataFrame({'a': np.arange(1.0, 6.0) + 0.01,
                                       'b': np.arange(1, 6),
                                       'c': list('abcde')})

        # Test columns exceeding "max_colwidth" (GH8305)
        _cw = get_option('display.max_colwidth') + 1
        cls.data['colwidth'] = mkdf(5, 3, data_gen_f=lambda *args: 'x' * _cw,
                                    c_idx_type='s', r_idx_type='i',
                                    c_idx_names=[None], r_idx_names=[None])
        # Test GH-5346
        max_rows = get_option('display.max_rows')
        cls.data['longdf'] = mkdf(max_rows + 1, 3,
                                  data_gen_f=lambda *args: randint(2),
                                  c_idx_type='s', r_idx_type='i',
                                  c_idx_names=[None], r_idx_names=[None])
        # Test for non-ascii text: GH9263
        cls.data['nonascii'] = pd.DataFrame({'en': 'in English'.split(),
                                             'es': 'en español'.split()})
        cls.data_types = list(cls.data.keys())
コード例 #6
0
ファイル: prep.py プロジェクト: Datenspieler/modern-pandas
def _repr_html_(self):
    if self.index.nlevels > 1:
        return None
    else:
        max_rows = pd.get_option("display.max_rows")
        max_cols = pd.get_option("display.max_columns")
        show_dimensions = pd.get_option("display.show_dimensions")

        return self.to_html(max_rows=max_rows, max_cols=max_cols,
                            show_dimensions=show_dimensions, notebook=True)
コード例 #7
0
ファイル: test_nanops.py プロジェクト: cpcloud/pandas
def test_use_bottleneck():

    if nanops._BOTTLENECK_INSTALLED:

        pd.set_option('use_bottleneck', True)
        assert pd.get_option('use_bottleneck')

        pd.set_option('use_bottleneck', False)
        assert not pd.get_option('use_bottleneck')

        pd.set_option('use_bottleneck', use_bn)
コード例 #8
0
ファイル: monitoring.py プロジェクト: petercerno/monitoring
def main():
    """
    Time monitoring application.
    """
    # global monitoring
    parser = argparse.ArgumentParser(description='Time monitoring application')
    parser.add_argument('work', help='work file')
    parser.add_argument('-f', '--from', help='date from (including)')
    parser.add_argument('-t', '--toex', help='date to (excluding)')
    parser.add_argument('-w', '--width', help='display width (columns)')
    args = parser.parse_args()
    args.f = args.__dict__['from']
    args.t = args.__dict__['toex']
    args.w = args.__dict__['width']
    today = datetime.date.today()
    if args.f and args.t:
        date_from = parse(args.f).date()
        date_toex = parse(args.t).date()
        if date_toex <= date_from:
            print "Warning: to-date must be strictly greater than from-date"
            return
    elif args.f and not args.t:
        date_from = parse(args.f).date()
        date_toex = date_from + relativedelta(months=1)
    elif not args.f and args.t:
        date_toex = parse(args.t).date()
        date_from = date_toex - relativedelta(months=1)
    else:
        date_toex = datetime.date(today.year, today.month, 1)
        date_from = date_toex - relativedelta(months=1)
    try:
        display_max_rows = pd.get_option('display.max_rows')
        display_max_columns = pd.get_option('display.max_columns')
        display_height = pd.get_option('display.height')
        display_width = pd.get_option('display.width')
        pd.set_option('display.max_rows',    1000)
        pd.set_option('display.max_columns', 1000)
        pd.set_option('display.height',      1000)
        if args.w:
            pd.set_option('display.width', int(args.w))
        f = open(args.work, 'rU')
        monitoring = Monitoring(date_from, date_toex)
        monitoring.process(f)
        monitoring.print_result()
    except IOError:
        sys.stderr.write('Problem reading: ' + args.work)
    finally:
        pd.set_option('display.max_rows', display_max_rows)
        pd.set_option('display.max_columns', display_max_columns)
        pd.set_option('display.height', display_height)
        pd.set_option('display.width', display_width)
        f.close()
コード例 #9
0
ファイル: parquet.py プロジェクト: Xbar/pandas
def get_engine(engine):
    """ return our implementation """

    if engine == 'auto':
        engine = get_option('io.parquet.engine')

    if engine == 'auto':
        # try engines in this order
        try:
            return PyArrowImpl()
        except ImportError:
            pass

        try:
            return FastParquetImpl()
        except ImportError:
            pass

    if engine not in ['pyarrow', 'fastparquet']:
        raise ValueError("engine must be one of 'pyarrow', 'fastparquet'")

    if engine == 'pyarrow':
        return PyArrowImpl()
    elif engine == 'fastparquet':
        return FastParquetImpl()
コード例 #10
0
ファイル: parquet.py プロジェクト: kljp/MLPrac01
def get_engine(engine):
    """ return our implementation """

    if engine == 'auto':
        engine = get_option('io.parquet.engine')

    if engine == 'auto':
        # try engines in this order
        try:
            return PyArrowImpl()
        except ImportError:
            pass

        try:
            return FastParquetImpl()
        except ImportError:
            pass

    if engine not in ['pyarrow', 'fastparquet']:
        raise ValueError("engine must be one of 'pyarrow', 'fastparquet'")

    if engine == 'pyarrow':
        return PyArrowImpl()
    elif engine == 'fastparquet':
        return FastParquetImpl()
コード例 #11
0
 def _get_head_tail(self):
     if self._empty:
         return pd.DataFrame()
     self.update_size()
     maxrows = pd.get_option('display.max_rows')
     if self._size <= maxrows:
         newdf = aku.DataFrame()
         for col in self._columns:
             if isinstance(self[col], ak.Categorical):
                 newdf[col] = self[col].categories[self[col].codes]
             else:
                 newdf[col] = self[col]
         return newdf.to_pandas(retain_index=True)
     # Being 1 above the threshold caises the PANDAS formatter to split the data frame vertically
     idx = ak.array(
         list(range(maxrows // 2 + 1)) +
         list(range(self._size - (maxrows // 2), self._size)))
     newdf = aku.DataFrame()
     for col in self._columns[1:]:
         if isinstance(self[col], ak.Categorical):
             newdf[col] = self[col].categories[self[col].codes[idx]]
         else:
             newdf[col] = self[col][idx]
     newdf['index'] = self['index'][idx]
     return newdf.to_pandas(retain_index=True)
コード例 #12
0
ファイル: clipboard.py プロジェクト: alephu5/Soundbyte
def read_clipboard(**kwargs):  # pragma: no cover
    """
    Read text from clipboard and pass to read_table. See read_table for the
    full argument list

    If unspecified, `sep` defaults to '\s+'

    Returns
    -------
    parsed : DataFrame
    """
    if kwargs.get('sep') is None and kwargs.get('delim_whitespace') is None:
        kwargs['sep'] = '\s+'
    from pandas.util.clipboard import clipboard_get
    from pandas.io.parsers import read_table
    text = clipboard_get()

    # try to decode (if needed on PY3)
    if compat.PY3:
        try:
            text = compat.bytes_to_str(
                text, encoding=(kwargs.get('encoding') or
                                get_option('display.encoding'))
            )
        except:
            pass
    return read_table(StringIO(text), **kwargs)
コード例 #13
0
def get_engine(engine: str) -> "BaseImpl":
    """ return our implementation """

    if engine == "auto":
        engine = get_option("io.parquet.engine")

    if engine == "auto":
        # try engines in this order
        try:
            return PyArrowImpl()
        except ImportError:
            pass

        try:
            return FastParquetImpl()
        except ImportError:
            pass

        raise ImportError(
            "Unable to find a usable engine; "
            "tried using: 'pyarrow', 'fastparquet'.\n"
            "pyarrow or fastparquet is required for parquet support")

    if engine == "pyarrow":
        return PyArrowImpl()
    elif engine == "fastparquet":
        return FastParquetImpl()

    raise ValueError("engine must be one of 'pyarrow', 'fastparquet'")
コード例 #14
0
ファイル: meta.py プロジェクト: michaelaye/iuvs
def produce_summary_txt(df, outfname):
    df = produce_summary_df(df)
    oldwidth = pd.get_option("display.max_colwidth")
    pd.set_option("display.max_colwidth", 10000)
    with open(outfname, 'w') as f:
        f.write(df.to_string())
    pd.set_option("display.max_colwidth", oldwidth)
コード例 #15
0
ファイル: prep.py プロジェクト: Storkenmaier/effective-pandas
def _repr_html_(self):
    self = self.copy()

    if self.index.nlevels > 1:
        return None
    else:
        name = self.index.name or 'index'
        if self.columns.name is None:
            self.columns.name = name

        max_rows = pd.get_option("display.max_rows")
        max_cols = pd.get_option("display.max_columns")
        show_dimensions = pd.get_option("display.show_dimensions")

        return self.to_html(max_rows=max_rows, max_cols=max_cols,
                            show_dimensions=show_dimensions, notebook=True)
コード例 #16
0
def print_table(table, name=None, fmt=None):
    """
    Pretty print a pandas DataFrame.

    Uses HTML output if running inside Jupyter Notebook, otherwise
    formatted text output.

    Parameters
    ----------
    table : pd.Series or pd.DataFrame
        Table to pretty-print.
    name : str, optional
        Table name to display in upper left corner.
    fmt : str, optional
        Formatter to use for displaying table elements.
        E.g. '{0:.2f}%' for displaying 100 as '100.00%'.
        Restores original setting after displaying.
    """
    if isinstance(table, pd.Series):
        table = pd.DataFrame(table)

    if isinstance(table, pd.DataFrame):
        table.columns.name = name

    prev_option = pd.get_option('display.float_format')
    if fmt is not None:
        pd.set_option('display.float_format', lambda x: fmt.format(x))

    display(table)

    if fmt is not None:
        pd.set_option('display.float_format', prev_option)
コード例 #17
0
def get_engine(engine: str) -> BaseImpl:
    """return our implementation"""
    if engine == "auto":
        engine = get_option("io.parquet.engine")

    if engine == "auto":
        # try engines in this order
        engine_classes = [PyArrowImpl, FastParquetImpl]

        error_msgs = ""
        for engine_class in engine_classes:
            try:
                return engine_class()
            except ImportError as err:
                error_msgs += "\n - " + str(err)

        raise ImportError(
            "Unable to find a usable engine; "
            "tried using: 'pyarrow', 'fastparquet'.\n"
            "A suitable version of "
            "pyarrow or fastparquet is required for parquet "
            "support.\n"
            "Trying to import the above resulted in these errors:"
            f"{error_msgs}"
        )

    if engine == "pyarrow":
        return PyArrowImpl()
    elif engine == "fastparquet":
        return FastParquetImpl()

    raise ValueError("engine must be one of 'pyarrow', 'fastparquet'")
コード例 #18
0
def test_backend_is_correct(monkeypatch, restore_backend):
    monkeypatch.setitem(sys.modules, "pandas_dummy_backend", dummy_backend)

    pandas.set_option("plotting.backend", "pandas_dummy_backend")
    assert pandas.get_option("plotting.backend") == "pandas_dummy_backend"
    assert (pandas.plotting._core._get_plot_backend("pandas_dummy_backend") is
            dummy_backend)
コード例 #19
0
ファイル: qgrid.py プロジェクト: gitter-badger/qgrid
    def __init__(self, data_frame):
        self.data_frame = data_frame
        self.div_id = str(uuid.uuid4())

        self.df_copy = data_frame.copy()

        if type(self.df_copy.index) == pd.core.index.MultiIndex:
            self.df_copy.reset_index(inplace=True)
        else:
            self.df_copy.insert(0, self.df_copy.index.name, self.df_copy.index)

        tc = dict(np.typecodes)
        for key in np.typecodes.keys():
            if "All" in key:
                del tc[key]

        self.column_types = []
        for col_name, dtype in self.df_copy.dtypes.iteritems():
            found_type = False
            column_type = {'field': col_name}
            for type_name, type_codes in tc.items():
                if dtype.kind in type_codes:
                    found_type = True
                    column_type['type'] = type_name
                    break
            self.column_types.append(column_type)

        self.precision = pd.get_option('display.precision') - 1
コード例 #20
0
def main(comparison_fn):
    old_width = pd.get_option('display.max_colwidth')
    pd.set_option('display.max_colwidth', -1)

    with open(comparison_fn, 'wt') as f:
        print(header, file=f)

        def title_from_fns(fns):
            return ' + '.join(fns)

        for idx, fns in enumerate(find_templates()):
            title = title_from_fns(fns)
            print(f'<li><a href="#{idx}">{title}</li>', file=f)

        for idx, fns in enumerate(find_templates()):
            df = compare(fns)
            html_comparison = df.to_html(
                formatters=[html_formatter] * len(versions),
                escape=False)

            title = title_from_fns(fns)
            print(f'<h1><a name={idx}>{title}</a></h1>', file=f)
            print(html_comparison, file=f)
        print(f'</body>', file=f)
    pd.set_option('display.max_colwidth', old_width)
コード例 #21
0
def test_api_for_categorical(any_string_method, any_string_dtype, request):
    # https://github.com/pandas-dev/pandas/issues/10661

    if any_string_dtype == "string[pyarrow]" or (
            any_string_dtype == "string"
            and get_option("string_storage") == "pyarrow"):
        # unsupported operand type(s) for +: 'ArrowStringArray' and 'str'
        mark = pytest.mark.xfail(raises=TypeError, reason="Not Implemented")
        request.node.add_marker(mark)

    s = Series(list("aabb"), dtype=any_string_dtype)
    s = s + " " + s
    c = s.astype("category")
    assert isinstance(c.str, strings.StringMethods)

    method_name, args, kwargs = any_string_method

    result = getattr(c.str, method_name)(*args, **kwargs)
    expected = getattr(s.astype("object").str, method_name)(*args, **kwargs)

    if isinstance(result, DataFrame):
        tm.assert_frame_equal(result, expected)
    elif isinstance(result, Series):
        tm.assert_series_equal(result, expected)
    else:
        # str.cat(others=None) returns string, for example
        assert result == expected
コード例 #22
0
ファイル: grid.py プロジェクト: OspreyX/qgrid
    def __init__(self, data_frame, remote_js=False):
        self.data_frame = data_frame
        self.remote_js = remote_js
        self.div_id = str(uuid.uuid4())

        self.df_copy = data_frame.copy()

        if type(self.df_copy.index) == pd.core.index.MultiIndex:
            self.df_copy.reset_index(inplace=True)
        else:
            self.df_copy.insert(0, self.df_copy.index.name, self.df_copy.index)

        tc = dict(np.typecodes)
        for key in np.typecodes.keys():
            if "All" in key:
                del tc[key]

        self.column_types = []
        for col_name, dtype in self.df_copy.dtypes.iteritems():
            column_type = {'field': col_name}
            for type_name, type_codes in tc.items():
                if dtype.kind in type_codes:
                    column_type['type'] = type_name
                    break
            self.column_types.append(column_type)

        self.precision = pd.get_option('display.precision') - 1
コード例 #23
0
ファイル: ushcn.py プロジェクト: jaredwo/obsio
    def _read_obs(self, stns_ids=None):

        # Saw extreme decreased performance due to garbage collection when
        # pandas ran checks for a chained assignment. Turn off this check
        # temporarily.
        opt_val = pd.get_option("mode.chained_assignment")
        pd.set_option("mode.chained_assignment", None)

        try:

            if stns_ids is None:
                stns_obs = self.stns
            else:
                stns_obs = self.stns.loc[stns_ids]

            obs = [self._parse_stn_obs(a_id, elem) for elem, a_id in itertools.product(self.elems, stns_obs.station_id)]

            obs = pd.concat(obs, ignore_index=True)

        finally:

            pd.set_option("mode.chained_assignment", opt_val)

        obs = obs.set_index(["station_id", "elem", "time"])
        obs = obs.sortlevel(0, sort_remaining=True)

        return obs
コード例 #24
0
ファイル: _ml.py プロジェクト: javiervicho/pydatalab
def _predict(args, cell):
  headers = args['headers'].split(',')
  img_cols = args['image_columns'].split(',') if args['image_columns'] else []

  data = args['prediction_data']
  df = _local_predict.get_prediction_results(
      args['model'], data, headers, img_cols=img_cols, cloud=args['cloud'],
      show_image=not args['no_show_image'])

  def _show_img(img_bytes):
    return '<img src="data:image/png;base64,' + img_bytes + '" />'

  def _truncate_text(text):
    return (text[:37] + '...') if isinstance(text, six.string_types) and len(text) > 40 else text

  # Truncate text explicitly here because we will set display.max_colwidth to -1.
  # This applies to images to but images will be overriden with "_show_img()" later.
  formatters = {x: _truncate_text for x in df.columns if df[x].dtype == np.object}
  if not args['no_show_image'] and img_cols:
    formatters.update({x + '_image': _show_img for x in img_cols})

  # Set display.max_colwidth to -1 so we can display images.
  old_width = pd.get_option('display.max_colwidth')
  pd.set_option('display.max_colwidth', -1)
  try:
    IPython.display.display(IPython.display.HTML(
        df.to_html(formatters=formatters, escape=False, index=False)))
  finally:
    pd.set_option('display.max_colwidth', old_width)
コード例 #25
0
ファイル: pd_utils.py プロジェクト: burakalver/cgap_scratch
def print_full(df):
    '''
    prints a pandas data frame completely.
    '''
    if not isinstance(df, pd.core.frame.DataFrame):
        raise ValueError('df should be a pandas.core.frame.DataFrame')

    options_print = {
        'display.max_rows': len(df),
        'display.max_columns': None,
        'display.width': 2000,
        'display.float_format': '{:20,.2f}'.format,
        'display.max_colwidth': None
    }
    options_ori = {
        opt_name: pd.get_option(opt_name)
        for opt_name in options_print.keys()
    }

    for opt_name, opt_value in options_print.items():
        pd.set_option(opt_name, opt_value)

    print(df)

    for opt_name, opt_value in options_ori.items():
        pd.set_option(opt_name, opt_value)
コード例 #26
0
ファイル: utils.py プロジェクト: MridulS/pyfolio
def print_table(table, name=None, fmt=None):
    """Pretty print a pandas DataFrame.

    Uses HTML output if running inside Jupyter Notebook, otherwise
    formatted text output.

    Parameters
    ----------
    table : pandas.Series or pandas.DataFrame
        Table to pretty-print.
    name : str, optional
        Table name to display in upper left corner.
    fmt : str, optional
        Formatter to use for displaying table elements.
        E.g. '{0:.2f}%' for displaying 100 as '100.00%'.
        Restores original setting after displaying.

    """
    if isinstance(table, pd.Series):
        table = pd.DataFrame(table)

    if fmt is not None:
        prev_option = pd.get_option('display.float_format')
        pd.set_option('display.float_format', lambda x: fmt.format(x))

    if name is not None:
        table.columns.name = name

    display(table)

    if fmt is not None:
        pd.set_option('display.float_format', prev_option)
コード例 #27
0
ファイル: meta.py プロジェクト: gitter-badger/iuvs
def produce_summary_txt(df, outfname):
    df = produce_summary_df(df)
    oldwidth = pd.get_option("display.max_colwidth")
    pd.set_option("display.max_colwidth", 10000)
    with open(outfname, 'w') as f:
        f.write(df.to_string())
    pd.set_option("display.max_colwidth", oldwidth)
コード例 #28
0
def get_engine(engine):
    """ return our implementation """

    if engine == 'auto':
        engine = get_option('io.parquet.engine')

    if engine == 'auto':
        # try engines in this order
        try:
            return PyArrowImpl()
        except ImportError:
            pass

        try:
            return FastParquetImpl()
        except ImportError:
            pass

        raise ImportError("Unable to find a usable engine; "
                          "tried using: 'pyarrow', 'fastparquet'.\n"
                          "pyarrow or fastparquet is required for parquet "
                          "support")

    if engine not in ['pyarrow', 'fastparquet']:
        raise ValueError("engine must be one of 'pyarrow', 'fastparquet'")

    if engine == 'pyarrow':
        return PyArrowImpl()
    elif engine == 'fastparquet':
        return FastParquetImpl()
コード例 #29
0
ファイル: parquet.py プロジェクト: bwignall/pandas
def get_engine(engine):
    """ return our implementation """

    if engine == 'auto':
        engine = get_option('io.parquet.engine')

    if engine == 'auto':
        # try engines in this order
        try:
            return PyArrowImpl()
        except ImportError:
            pass

        try:
            return FastParquetImpl()
        except ImportError:
            pass

        raise ImportError("Unable to find a usable engine; "
                          "tried using: 'pyarrow', 'fastparquet'.\n"
                          "pyarrow or fastparquet is required for parquet "
                          "support")

    if engine not in ['pyarrow', 'fastparquet']:
        raise ValueError("engine must be one of 'pyarrow', 'fastparquet'")

    if engine == 'pyarrow':
        return PyArrowImpl()
    elif engine == 'fastparquet':
        return FastParquetImpl()
コード例 #30
0
def report(master_df):
    _set_image_paths(master_df)

    master_df[_LINK] = master_df[_PREDICT_LABELS].map(
        lambda s: '<a href="report_label_{}.html" target="new"/>'
        'Image of test result "Success"</a>'.format(s))

    master_df = master_df.sort_values(by=[_PREDICT_LABELS, _INDEX])

    master_df = master_df.drop(_INDEX, axis=1)

    master_df = master_df.loc[:, [
        _IMAGE, _SIGN_MEANING_PREDICT, _OUT_RANGES, _LINK
    ]]
    master_df = master_df.rename(
        columns={
            _IMAGE: 'Image of test result "Inconsistent"',
            _SIGN_MEANING_PREDICT: 'Target DNN prediction result',
            _OUT_RANGES: 'Acceptable prediction result'
        })

    # Output HTML
    old_colwidth = pd.get_option('display.max_colwidth')
    pd.set_option('display.max_colwidth', -1)
    table = master_df.to_html(escape=False, index=False, justify='center')
    # create html
    with open(str(Path(_HTML).joinpath('report.html')), "w") as f:
        f.write(meta_text)
        f.write('<title>Result list(Failure only)</title>\n')
        f.write(table)

    pd.set_option('display.max_colwidth', old_colwidth)

    return Path(_HTML).joinpath('report.html')
コード例 #31
0
ファイル: results.py プロジェクト: gwfrere/python-swat
    def _repr_html_(self):
        '''
        Create an HTML representation for IPython

        Returns
        -------
        string
           HTML representation of CASResults object

        '''
        if pdcom.in_qtconsole():
            return None

        if not pd.get_option('display.notebook.repr_html'):
            return None

        output = []

        i = 0
        for key, item in six.iteritems(self):
            if i:
                sfmt = '<div class="cas-results-key"><hr/><b>&#167; %s</b></div>'
            else:
                sfmt = '<div class="cas-results-key"><b>&#167; %s</b></div>'
            output.append(sfmt % key)
            output.append('<div class="cas-results-body">')
            if hasattr(item, '_repr_html_'):
                res = item._repr_html_()
                if res is None:
                    output.append('<div>%s</div>' % res)
                else:
                    output.append(res)
            else:
                output.append('<div>%s</div>' % item)
            output.append('</div>')
            i += 1

        output.append('<div class="cas-output-area"></div>')

        if getattr(self, 'performance'):
            stats = []
            if getattr(self.performance, 'elapsed_time'):
                stats.append('<span class="cas-elapsed">elapsed %.3gs</span>' %
                             self.performance.elapsed_time)
            if getattr(self.performance, 'cpu_user_time'):
                stats.append('<span class="cas-user">user %.3gs</span>' %
                             self.performance.cpu_user_time)
            if getattr(self.performance, 'cpu_system_time'):
                stats.append('<span class="cas-sys">sys %.3gs</span>' %
                             self.performance.cpu_system_time)
            if getattr(self.performance, 'memory'):
                stats.append('<span class="cas-memory">mem %.3gMB</span>' %
                             (self.performance.memory / 1048576.0))
            if stats:
                output.append(
                    '<p class="cas-results-performance"><small>%s</small></p>'
                    % ' &#183; '.join(stats))

        return '\n'.join(output)
コード例 #32
0
ファイル: PandasTools.py プロジェクト: iwatobipen/rdkit
def _get_image(x):
  """displayhook function for PNG data"""
  s = b64encode(x).decode('ascii')
  pd.set_option('display.max_columns', len(s) + 1000)
  pd.set_option('display.max_rows', len(s) + 1000)
  if len(s) + 100 > pd.get_option("display.max_colwidth"):
    pd.set_option("display.max_colwidth", len(s) + 1000)
  return s
コード例 #33
0
ファイル: conftest.py プロジェクト: valeman/altair_pandas
def with_plotting_backend(request):
    default = pd.get_option("plotting.backend")
    pd.set_option("plotting.backend", request.config.getoption("backend_name"))
    yield
    try:
        pd.set_option("plotting.backend", default)
    except ImportError:
        pass  # matplotlib is not installed.
コード例 #34
0
def get_past_scans():
    old_width = pd.get_option('display.max_colwidth')
    pd.set_option('display.max_colwidth', -1)
    ret = pd.read_csv('past_scans.csv').to_html(escape=True,
                                                classes='table table-striped',
                                                index=False)
    pd.set_option('display.max_colwidth', old_width)
    return ret
コード例 #35
0
ファイル: PandasTools.py プロジェクト: wenke1020/rdkit
def _get_image(x):
    """displayhook function for PNG data"""
    s = b64encode(x).decode('ascii')
    pd.set_option('display.max_columns', len(s) + 1000)
    pd.set_option('display.max_rows', len(s) + 1000)
    if len(s) + 100 > pd.get_option("display.max_colwidth"):
        pd.set_option("display.max_colwidth", len(s) + 1000)
    return s
コード例 #36
0
 def setvalue(self, value, silent=False):
     if self._use_pd:
         import pandas as pd
         key = '.'.join(self._items)
         if value != pd.get_option(key):
             pd.set_option(key, value)
     else:
         self._val = value
コード例 #37
0
 def setvalue(self, value):
     if self._use_pd:
         import pandas as pd
         key = '.'.join(self._items)
         if value != pd.get_option(key):
             pd.set_option(key, value)
     else:
         self._val = value
コード例 #38
0
def repr_DataFrame(df, _):
    from pandas import get_option

    return df.to_string(
        max_rows=repr_DataFrame.max_rows,
        max_cols=repr_DataFrame.max_cols,
        show_dimensions=get_option("display.show_dimensions"),
    )
コード例 #39
0
def setPandasWide():  # allow full terminal output
    termrows, termcols = os.popen('stty size', 'r').read().split()
    termheight = int(termrows)
    termwidth = int(termcols)
    deport("stty rows x cols", '{0:d} x {1:d}'.format(termheight, termwidth))
    pandas.set_option('display.width', termwidth)  # default width is 80
    pandaswidth = pandas.get_option('display.width')
    deport("pandas reporting width", pandaswidth)
コード例 #40
0
ファイル: clipboards.py プロジェクト: Goutham2591/OMK_PART2
def read_clipboard(sep='\s+', **kwargs):  # pragma: no cover
    r"""
    Read text from clipboard and pass to read_table. See read_table for the
    full argument list

    Parameters
    ----------
    sep : str, default '\s+'.
        A string or regex delimiter. The default of '\s+' denotes
        one or more whitespace characters.

    Returns
    -------
    parsed : DataFrame
    """
    encoding = kwargs.pop('encoding', 'utf-8')

    # only utf-8 is valid for passed value because that's what clipboard
    # supports
    if encoding is not None and encoding.lower().replace('-', '') != 'utf8':
        raise NotImplementedError(
            'reading from clipboard only supports utf-8 encoding')

    from pandas.io.clipboard import clipboard_get
    from pandas.io.parsers import read_table
    text = clipboard_get()

    # try to decode (if needed on PY3)
    # Strange. linux py33 doesn't complain, win py33 does
    if compat.PY3:
        try:
            text = compat.bytes_to_str(
                text,
                encoding=(kwargs.get('encoding')
                          or get_option('display.encoding')))
        except:
            pass

    # Excel copies into clipboard with \t separation
    # inspect no more then the 10 first lines, if they
    # all contain an equal number (>0) of tabs, infer
    # that this came from excel and set 'sep' accordingly
    lines = text[:10000].split('\n')[:-1][:10]

    # Need to remove leading white space, since read_table
    # accepts:
    #    a  b
    # 0  1  2
    # 1  3  4

    counts = set([x.lstrip().count('\t') for x in lines])
    if len(lines) > 1 and len(counts) == 1 and counts.pop() != 0:
        sep = '\t'

    if sep is None and kwargs.get('delim_whitespace') is None:
        sep = '\s+'

    return read_table(StringIO(text), sep=sep, **kwargs)
コード例 #41
0
ファイル: clipboards.py プロジェクト: BobMcFry/pandas
def read_clipboard(sep=r'\s+', **kwargs):  # pragma: no cover
    r"""
    Read text from clipboard and pass to read_table. See read_table for the
    full argument list

    Parameters
    ----------
    sep : str, default '\s+'.
        A string or regex delimiter. The default of '\s+' denotes
        one or more whitespace characters.

    Returns
    -------
    parsed : DataFrame
    """
    encoding = kwargs.pop('encoding', 'utf-8')

    # only utf-8 is valid for passed value because that's what clipboard
    # supports
    if encoding is not None and encoding.lower().replace('-', '') != 'utf8':
        raise NotImplementedError(
            'reading from clipboard only supports utf-8 encoding')

    from pandas.io.clipboard import clipboard_get
    from pandas.io.parsers import read_table
    text = clipboard_get()

    # try to decode (if needed on PY3)
    # Strange. linux py33 doesn't complain, win py33 does
    if compat.PY3:
        try:
            text = compat.bytes_to_str(
                text, encoding=(kwargs.get('encoding') or
                                get_option('display.encoding'))
            )
        except:
            pass

    # Excel copies into clipboard with \t separation
    # inspect no more then the 10 first lines, if they
    # all contain an equal number (>0) of tabs, infer
    # that this came from excel and set 'sep' accordingly
    lines = text[:10000].split('\n')[:-1][:10]

    # Need to remove leading white space, since read_table
    # accepts:
    #    a  b
    # 0  1  2
    # 1  3  4

    counts = {x.lstrip().count('\t') for x in lines}
    if len(lines) > 1 and len(counts) == 1 and counts.pop() != 0:
        sep = r'\t'

    if sep is None and kwargs.get('delim_whitespace') is None:
        sep = r'\s+'

    return read_table(StringIO(text), sep=sep, **kwargs)
コード例 #42
0
 def getvalue(self, silent=False):
     if self._use_pd:
         import pandas as pd
         try:
             return pd.get_option('.'.join(self._items))
         except (KeyError, LookupError, AttributeError):
             self._use_pd = False
     else:
         return self._val
コード例 #43
0
def test_pandas_context_warn(temp_url):
    initial_mode = pd.get_option('mode.chained_assignment')

    with Flow('test_pandas_context_warn') as flow:
        task = PandasModeSpy(pandas_chained_assignment='warn')
        task()

    with warnings.catch_warnings(record=True) as w:
        with prefect.context(caches={}):
            flow_state = flow.run()

    # Keep only the SettingWithCopyWarning warnings, there could be others
    w = [_w for _w in w if _w.category == pandas.core.common.SettingWithCopyWarning]
    assert len(w) == 1

    result = list(flow_state.result.values())[0].result
    assert result == 'warn'
    assert pd.get_option('mode.chained_assignment') == initial_mode
コード例 #44
0
def repr_pandas_Series(series, _):
    from pandas import get_option

    return series.to_string(
        max_rows=repr_pandas_Series.max_rows,
        name=series.name,
        dtype=series.dtype,
        length=get_option("display.show_dimensions"),
    )
コード例 #45
0
def get_train_test_sets(train_file, test_file):
    # print all rows and columns when needed
    pd.get_option('display.max_rows')
    pd.set_option('display.max_rows', None)
    pd.set_option('display.max_columns', None)
    # pd.set_option('display.max_column_width', None)

    # load into pd.DataFrame
    train_set = pd.read_csv(train_file)
    test_set = pd.read_csv(test_file)

    # extract test_set id Series, for submission
    test_id = test_set.loc[:, 'id']

    # use id as index
    train_set.set_index('id', inplace=True)  # set id as index
    test_set.set_index('id', inplace=True)
    return (train_set, test_set, test_id)
コード例 #46
0
def test_edit_multi_index_df():
    df_multi = create_multi_index_df()
    view = QgridWidget(df=df_multi)
    old_val = df_multi.loc[('bar', 'two'), 1]

    check_edit_success(view, 1, 1, old_val,
                       round(old_val,
                             pd.get_option('display.precision') - 1), 3.45678,
                       3.45678)
コード例 #47
0
def _repr_html_(self):
    self = self.copy()

    if self.index.nlevels > 1:
        return None
    else:
        name = self.index.name or 'index'
        if self.columns.name is None:
            self.columns.name = name

        max_rows = pd.get_option("display.max_rows")
        max_cols = pd.get_option("display.max_columns")
        show_dimensions = pd.get_option("display.show_dimensions")

        return self.to_html(max_rows=max_rows,
                            max_cols=max_cols,
                            show_dimensions=show_dimensions,
                            notebook=True)
コード例 #48
0
ファイル: PandasTools.py プロジェクト: zxye3389/rdkit-orig
def _get_image(x):
    """displayhook function for PIL Images, rendered as PNG"""
    import pandas
    sio = StringIO()
    x.save(sio, format='PNG')
    s = b64encode(sio.getvalue())
    if len(s) + 100 > pd.get_option("display.max_colwidth"):
        pd.set_option("display.max_colwidth", len(s) + 100)
    return s
コード例 #49
0
ファイル: onedata.py プロジェクト: clarenceehsu/oneLine
    def show(self,
             info: bool = False,
             all_columns: bool = False,
             all_rows: bool = False,
             max_columns: int = None,
             max_rows: int = None,
             precision: int = None):
        """
        Display the info and details of data.
        The display options would be reset to the previous state after printing data, in other words, the
        options that was edited in show() would not be inherited.

        :param info: stay True if a display of information is required
        :param all_columns: reset the display of columns if columns equals to True
        :param all_rows: reset the display of rows if rows equals to True
        :param max_columns: the max columns of display
        :param max_rows: the max rows of display
        :param precision: a fast adjustment to the precision of display
        :return None
        """

        if info:
            self.info(memory_usage=False)
            print(
                '\n\n - Shape: {}\n - Index: {}\n - Memory usage: {:.3f} MB\n'.
                format(self.shape, ", ".join(self.columns),
                       self.memory_usage().sum() / 1024**2))
        original_max_columns = pd.get_option('display.max_columns')
        original_max_rows = pd.get_option('display.max_rows')
        original_display_precision = pd.get_option('display.precision')
        if max_columns:
            pd.set_option('display.max_columns', max_columns)
        if max_rows:
            pd.set_option('display.max_rows', max_rows)
        if all_columns:
            pd.set_option('display.max_columns', None)
        if all_rows:
            pd.set_option('display.max_rows', None)
        if precision:
            pd.set_option('display.precision', precision)
        print(self)
        pd.set_option('display.max_rows', original_max_rows)
        pd.set_option('display.max_columns', original_max_columns)
        pd.set_option('display.precision', original_display_precision)
コード例 #50
0
    def _repr_html_(self):
        ''' Return a html representation for a particular DataFrame  '''

        # Calling a private DataFrame method here, so protect it.
        if getattr(self, '_info_repr', lambda: False)():
            buf = six.StringIO('')
            self.info(buf=buf)
            # need to escape the <class>, should be the first line.
            val = buf.getvalue().replace('<', r'&lt;', 1)
            val = val.replace('>', r'&gt;', 1)
            return '<pre>' + val + '</pre>'

        kwargs = {}
        if get_option('display.apply_formats'):
            kwargs['formatters'] = self._get_formatters()
            kwargs['na_rep'] = '.'

        if pd.get_option('display.notebook_repr_html'):
            try:
                kwargs['min_rows'] = pd.get_option('display.min_rows')
            except:  # noqa: E722
                pass
            max_rows = pd.get_option('display.max_rows')
            max_cols = pd.get_option('display.max_columns')
            show_dimensions = pd.get_option('display.show_dimensions')

            formatter = pdfmt.DataFrameFormatter(
                self,
                max_rows=max_rows,
                max_cols=max_cols,
                show_dimensions=show_dimensions,
                **kwargs)
            # NOTE: Patch for bug in pandas DataFrameFormatter when using
            #       formatters on a DataFrame that is truncated in the console.
            formatter.columns = formatter.tr_frame.columns
            html = formatter.to_html(**notebook_opts)
            if html is None:
                if getattr(formatter, 'buf', None) is not None:
                    html = formatter.buf.getvalue()
                else:
                    return None
            return self._post_process_html(html)

        return None
コード例 #51
0
def df(request):
    data_type = request.param

    if data_type == 'delims':
        return pd.DataFrame({'a': ['"a,\t"b|c', 'd\tef´'],
                             'b': ['hi\'j', 'k\'\'lm']})
    elif data_type == 'utf8':
        return pd.DataFrame({'a': ['µasd', 'Ωœ∑´'],
                             'b': ['øπ∆˚¬', 'œ∑´®']})
    elif data_type == 'utf16':
        return pd.DataFrame({'a': ['\U0001f44d\U0001f44d',
                                   '\U0001f44d\U0001f44d'],
                             'b': ['abc', 'def']})
    elif data_type == 'string':
        return mkdf(5, 3, c_idx_type='s', r_idx_type='i',
                    c_idx_names=[None], r_idx_names=[None])
    elif data_type == 'long':
        max_rows = get_option('display.max_rows')
        return mkdf(max_rows + 1, 3,
                    data_gen_f=lambda *args: randint(2),
                    c_idx_type='s', r_idx_type='i',
                    c_idx_names=[None], r_idx_names=[None])
    elif data_type == 'nonascii':
        return pd.DataFrame({'en': 'in English'.split(),
                             'es': 'en español'.split()})
    elif data_type == 'colwidth':
        _cw = get_option('display.max_colwidth') + 1
        return mkdf(5, 3, data_gen_f=lambda *args: 'x' * _cw,
                    c_idx_type='s', r_idx_type='i',
                    c_idx_names=[None], r_idx_names=[None])
    elif data_type == 'mixed':
        return DataFrame({'a': np.arange(1.0, 6.0) + 0.01,
                          'b': np.arange(1, 6),
                          'c': list('abcde')})
    elif data_type == 'float':
        return mkdf(5, 3, data_gen_f=lambda r, c: float(r) + 0.01,
                    c_idx_type='s', r_idx_type='i',
                    c_idx_names=[None], r_idx_names=[None])
    elif data_type == 'int':
        return mkdf(5, 3, data_gen_f=lambda *args: randint(2),
                    c_idx_type='s', r_idx_type='i',
                    c_idx_names=[None], r_idx_names=[None])
    else:
        raise ValueError
コード例 #52
0
    def render(self, df, encoding, output):
        with output:
            max_rows = pd.get_option("display.max_rows")
            max_cols = pd.get_option("display.max_columns")
            show_dimensions = pd.get_option("display.show_dimensions")

            # This will hide the index column for pandas df.
            self.display.html("""
<style>
    table.dataframe.hideme thead th:first-child {
        display: none;
    }
    table.dataframe.hideme tbody th {
        display: none;
    }
</style>
""")
            self.display.html(df.to_html(max_rows=max_rows, max_cols=max_cols,
                                         show_dimensions=show_dimensions, notebook=True, classes="hideme"))
コード例 #53
0
ファイル: PandasTools.py プロジェクト: connorcoley/rdkit
def _get_image(x):
  """displayhook function for PIL Images, rendered as PNG"""
  bio = BytesIO()
  x.save(bio, format='PNG')
  s = b64encode(bio.getvalue()).decode('ascii')
  pd.set_option('display.max_columns', len(s) + 1000)
  pd.set_option('display.max_rows', len(s) + 1000)
  if len(s) + 100 > pd.get_option("display.max_colwidth"):
    pd.set_option("display.max_colwidth", len(s) + 1000)
  return s
コード例 #54
0
ファイル: PandasTools.py プロジェクト: rdkit/rdkit-orig
def _get_image(x):
    """displayhook function for PIL Images, rendered as PNG"""
    import pandas

    sio = StringIO()
    x.save(sio, format="PNG")
    s = b64encode(sio.getvalue())
    if len(s) + 100 > pd.get_option("display.max_colwidth"):
        pd.set_option("display.max_colwidth", len(s) + 100)
    return s
コード例 #55
0
 def getvalue(self):
     if self._use_pd:
         import pandas as pd
         from pandas.core.config import OptionError as PandasOptionError
         try:
             return pd.get_option('.'.join(self._items))
         except PandasOptionError:
             self._use_pd = False
     else:
         return self._val
コード例 #56
0
ファイル: PandasTools.py プロジェクト: jandom/rdkit
def _get_image(x):
    """displayhook function for PIL Images, rendered as PNG"""
    import pandas as pd

    bio = BytesIO()
    x.save(bio, format="PNG")
    s = b64encode(bio.getvalue()).decode("ascii")
    pd.set_option("display.max_columns", len(s) + 1000)
    pd.set_option("display.max_rows", len(s) + 1000)
    if len(s) + 100 > pd.get_option("display.max_colwidth"):
        pd.set_option("display.max_colwidth", len(s) + 1000)
    return s
コード例 #57
0
ファイル: NBTools.py プロジェクト: Krysia/TCGA
    def _repr_html_(self):
        if self._info_repr():
            buf = StringIO(u(""))
            self.info(buf=buf)
            return '<pre>' + buf.getvalue() + '</pre>'


        max_rows = pd.get_option("display.max_rows")
        max_cols = pd.get_option("display.max_columns")
        html = self.to_html(max_rows=max_rows,
                            max_cols=max_cols,
                            show_dimensions=False,
                            classes='table table-bordered table-striped')

        text =  '<div>\n'
        text += html
        text += '\n</div>'
        #text = text.replace('border="1" ','border="2" ')
        text = text.replace('dataframe ','')
        text = text.replace('<table ','<table id="{}" '.format(div_id))
        return text
コード例 #58
0
ファイル: console.py プロジェクト: AllenDowney/pandas
def get_console_size():
    """Return console size as tuple = (width, height).

    Returns (None,None) in non-interactive session.
    """
    from pandas import get_option
    from pandas.core import common as com

    display_width = get_option('display.width')
    # deprecated.
    display_height = get_option('display.height', silent=True)

    # Consider
    # interactive shell terminal, can detect term size
    # interactive non-shell terminal (ipnb/ipqtconsole), cannot detect term
    # size non-interactive script, should disregard term size

    # in addition
    # width,height have default values, but setting to 'None' signals
    # should use Auto-Detection, But only in interactive shell-terminal.
    # Simple. yeah.

    if com.in_interactive_session():
        if com.in_ipython_frontend():
            # sane defaults for interactive non-shell terminal
            # match default for width,height in config_init
            from pandas.core.config import get_default_val
            terminal_width = get_default_val('display.width')
            terminal_height = get_default_val('display.height')
        else:
            # pure terminal
            terminal_width, terminal_height = get_terminal_size()
    else:
        terminal_width, terminal_height = None, None

    # Note if the User sets width/Height to None (auto-detection)
    # and we're in a script (non-inter), this will return (None,None)
    # caller needs to deal.
    return (display_width or terminal_width, display_height or terminal_height)
コード例 #59
0
ファイル: test_grid.py プロジェクト: quantopian/qgrid
def test_edit_multi_index_df():
    df_multi = create_multi_index_df()
    df_multi.index.set_names('first', level=0, inplace=True)
    view = QgridWidget(df=df_multi)
    old_val = df_multi.loc[('bar', 'two'), 1]

    check_edit_success(view,
                       1,
                       1,
                       old_val,
                       round(old_val, pd.get_option('display.precision') - 1),
                       3.45678,
                       3.45678)
コード例 #60
0
ファイル: NBTools.py プロジェクト: Krysia/TCGA
def hover_table(self):
    """
    Return a html representation for a particular DataFrame.
    Mainly for IPython notebook.
    """
    # ipnb in html repr mode allows scrolling
    # users strongly prefer to h-scroll a wide HTML table in the browser
    # then to get a summary view. GH3541, GH3573
    ipnbh = com.in_ipnb() and pd.get_option('display.notebook_repr_html')

    # qtconsole doesn't report it's line width, and also
    # behaves badly when outputting an HTML table
    # that doesn't fit the window, so disable it.
    if com.in_qtconsole():
        raise NotImplementedError('HTML output is disabled in QtConsole')

    if self._info_repr():
        buf = StringIO(u(""))
        self.info(buf=buf)
        return '<pre>' + buf.getvalue() + '</pre>'

    if pd.get_option("display.notebook_repr_html"):
        max_rows = pd.get_option("display.max_rows")
        max_cols = pd.get_option("display.max_columns")
        html = self.to_html(max_rows=max_rows,
                            max_cols=max_cols,
                            show_dimensions=False,
                            classes='table table-hover')

        text =  '<div style="max-height:1000px; max-width:900px;overflow:auto;">\n'
        text += html
        text += '\n</div>'
        text = text.replace('dataframe ','')
        return text
    else:
        return None