diff --git a/pandas/io/pytables.py b/pandas/io/pytables.py index 39e9d467b652f..df377bb4e1e7c 100644 --- a/pandas/io/pytables.py +++ b/pandas/io/pytables.py @@ -1191,13 +1191,31 @@ def append_to_multiple( self.append(k, val, data_columns=dc, **kwargs) - def create_table_index(self, key: str, **kwargs): + def create_table_index( + self, + key: str, + columns=None, + optlevel: Optional[int] = None, + kind: Optional[str] = None, + ): """ Create a pytables index on the table. Parameters ---------- key : str + columns : None, bool, or listlike[str] + Indicate which columns to create an index on. + + * False : Do not create any indexes. + * True : Create indexes on all columns. + * None : Create indexes on all columns. + * listlike : Create indexes on the given columns. + + optlevel : int or None, default None + Optimization level, if None, pytables defaults to 6. + kind : str or None, default None + Kind of index, if None, pytables defaults to "medium" Raises ------ @@ -1212,7 +1230,7 @@ def create_table_index(self, key: str, **kwargs): if not isinstance(s, Table): raise TypeError("cannot create table index on a Fixed format store") - s.create_index(**kwargs) + s.create_index(columns=columns, optlevel=optlevel, kind=kind) def groups(self): """ @@ -3526,7 +3544,7 @@ def f(i, c): return self._indexables - def create_index(self, columns=None, optlevel=None, kind=None): + def create_index(self, columns=None, optlevel=None, kind: Optional[str] = None): """ Create a pytables index on the specified columns note: cannot index Time64Col() or ComplexCol currently; @@ -3534,10 +3552,18 @@ def create_index(self, columns=None, optlevel=None, kind=None): Parameters ---------- - columns : False (don't create an index), True (create all columns - index), None or list_like (the indexers to index) - optlevel: optimization level (defaults to 6) - kind : kind of index (defaults to 'medium') + columns : None, bool, or listlike[str] + Indicate which columns to create an index on. + + * False : Do not create any indexes. + * True : Create indexes on all columns. + * None : Create indexes on all columns. + * listlike : Create indexes on the given columns. + + optlevel : int or None, default None + Optimization level, if None, pytables defaults to 6. + kind : str or None, default None + Kind of index, if None, pytables defaults to "medium" Raises ------