pyspark.pandas.DataFrame.reset_index#
- DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='')[source]#
- Reset the index, or a level of it. - For DataFrame with multi-level index, return new DataFrame with labeling information in the columns under the index names, defaulting to ‘level_0’, ‘level_1’, etc. if any are None. For a standard index, the index name will be used (if set), otherwise a default ‘index’ or ‘level_0’ (if ‘index’ is already taken) will be used. - Parameters
- levelint, str, tuple, or list, default None
- Only remove the given levels from the index. Removes all levels by default. 
- dropbool, default False
- Do not try to insert index into dataframe columns. This reset the index to the default integer index. 
- inplacebool, default False
- Modify the DataFrame in place (do not create a new object). 
- col_levelint or str, default 0
- If the columns have multiple levels, determines which level the labels are inserted into. By default it is inserted into the first level. 
- col_fillobject, default ‘’
- If the columns have multiple levels, determines how the other levels are named. If None then the index name is repeated. 
 
- Returns
- DataFrame
- DataFrame with the new index. 
 
 - See also - DataFrame.set_index
- Opposite of reset_index. 
 - Examples - >>> df = ps.DataFrame([('bird', 389.0), ... ('bird', 24.0), ... ('mammal', 80.5), ... ('mammal', np.nan)], ... index=['falcon', 'parrot', 'lion', 'monkey'], ... columns=('class', 'max_speed')) >>> df class max_speed falcon bird 389.0 parrot bird 24.0 lion mammal 80.5 monkey mammal NaN - When we reset the index, the old index is added as a column. Unlike pandas, pandas-on-Spark does not automatically add a sequential index. The following 0, 1, 2, 3 are only there when we display the DataFrame. - >>> df.reset_index() index class max_speed 0 falcon bird 389.0 1 parrot bird 24.0 2 lion mammal 80.5 3 monkey mammal NaN - We can use the drop parameter to avoid the old index being added as a column: - >>> df.reset_index(drop=True) class max_speed 0 bird 389.0 1 bird 24.0 2 mammal 80.5 3 mammal NaN - You can also use reset_index with MultiIndex. - >>> index = pd.MultiIndex.from_tuples([('bird', 'falcon'), ... ('bird', 'parrot'), ... ('mammal', 'lion'), ... ('mammal', 'monkey')], ... names=['class', 'name']) >>> columns = pd.MultiIndex.from_tuples([('speed', 'max'), ... ('species', 'type')]) >>> df = ps.DataFrame([(389.0, 'fly'), ... ( 24.0, 'fly'), ... ( 80.5, 'run'), ... (np.nan, 'jump')], ... index=index, ... columns=columns) >>> df speed species max type class name bird falcon 389.0 fly parrot 24.0 fly mammal lion 80.5 run monkey NaN jump - If the index has multiple levels, we can reset a subset of them: - >>> df.reset_index(level='class') class speed species max type name falcon bird 389.0 fly parrot bird 24.0 fly lion mammal 80.5 run monkey mammal NaN jump - If we are not dropping the index, by default, it is placed in the top level. We can place it in another level: - >>> df.reset_index(level='class', col_level=1) speed species class max type name falcon bird 389.0 fly parrot bird 24.0 fly lion mammal 80.5 run monkey mammal NaN jump - When the index is inserted under another level, we can specify under which one with the parameter col_fill: - >>> df.reset_index(level='class', col_level=1, ... col_fill='species') species speed species class max type name falcon bird 389.0 fly parrot bird 24.0 fly lion mammal 80.5 run monkey mammal NaN jump - If we specify a nonexistent level for col_fill, it is created: - >>> df.reset_index(level='class', col_level=1, ... col_fill='genus') genus speed species class max type name falcon bird 389.0 fly parrot bird 24.0 fly lion mammal 80.5 run monkey mammal NaN jump