pandas.DataFrame.set_index — pandas 0.24.0rc1 documentation (original) (raw)

DataFrame. set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)[source]

Set the DataFrame index using existing columns.

Set the DataFrame index (row labels) using one or more existing columns. The index can replace the existing index or expand on it.

Parameters: keys : label or list of label Name or names of the columns that will be used as the index. drop : bool, default True Delete columns to be used as the new index. append : bool, default False Whether to append columns to existing index. inplace : bool, default False Modify the DataFrame in place (do not create a new object). verify_integrity : bool, default False Check the new index for duplicates. Otherwise defer the check until necessary. Setting to False will improve the performance of this method.
Returns: DataFrame Changed row labels.

Examples

df = pd.DataFrame({'month': [1, 4, 7, 10], ... 'year': [2012, 2014, 2013, 2014], ... 'sale': [55, 40, 84, 31]}) df month year sale 0 1 2012 55 1 4 2014 40 2 7 2013 84 3 10 2014 31

Set the index to become the ‘month’ column:

df.set_index('month') year sale month 1 2012 55 4 2014 40 7 2013 84 10 2014 31

Create a multi-index using columns ‘year’ and ‘month’:

df.set_index(['year', 'month']) sale year month 2012 1 55 2014 4 40 2013 7 84 2014 10 31

Create a multi-index using a set of values and a column:

df.set_index([[1, 2, 3, 4], 'year']) month sale year 1 2012 1 55 2 2014 4 40 3 2013 7 84 4 2014 10 31