Indexing
Index
Many of these methods or variants thereof are available on the objects that contain an index (Series/DataFrame) and those should most likely be used before calling these methods directly.
Index | Immutable ndarray implementing an ordered, sliceable set. |
Properties
Index.values | Return an array representing the data in the Index. |
Index.is_monotonic | Alias for is_monotonic_increasing. |
Index.is_monotonic_increasing | Return if the index is monotonic increasing (only equal or increasing) values. |
Index.is_monotonic_decreasing | Return if the index is monotonic decreasing (only equal or decreasing) values. |
Index.is_unique | Return if the index has unique values. |
Index.has_duplicates | |
Index.hasnans | Return if I have any nans; enables various perf speedups. |
Index.dtype | Return the dtype object of the underlying data. |
Index.dtype_str | Return the dtype str of the underlying data. |
Index.inferred_type | Return a string of the type inferred from the values. |
Index.is_all_dates | |
Index.shape | Return a tuple of the shape of the underlying data. |
Index.name | |
Index.names | |
Index.nbytes | Return the number of bytes in the underlying data. |
Index.ndim | Number of dimensions of the underlying data, by definition 1. |
Index.size | Return the number of elements in the underlying data. |
Index.empty | |
Index.strides | Return the strides of the underlying data. |
Index.itemsize | Return the size of the dtype of the item of the underlying data. |
Index.base | Return the base object if the memory of the underlying data is shared. |
Index.T | Return the transpose, which is by definition self. |
Index.memory_usage([deep]) | Memory usage of the values |
Modifying and Computations
Index.all(*args, **kwargs) | Return whether all elements are True. |
Index.any(*args, **kwargs) | Return whether any element is True. |
Index.argmin([axis, skipna]) | Return a ndarray of the minimum argument indexer. |
Index.argmax([axis, skipna]) | Return a ndarray of the maximum argument indexer. |
Index.copy([name, deep, dtype]) | Make a copy of this object. |
Index.delete(loc) | Make new Index with passed location(-s) deleted. |
Index.drop(labels[, errors]) | Make new Index with passed list of labels deleted. |
Index.drop_duplicates([keep]) | Return Index with duplicate values removed. |
Index.duplicated([keep]) | Indicate duplicate index values. |
Index.equals(other) | Determines if two Index objects contain the same elements. |
Index.factorize([sort, na_sentinel]) | Encode the object as an enumerated type or categorical variable. |
Index.identical(other) | Similar to equals, but check that other comparable attributes are also equal. |
Index.insert(loc, item) | Make new Index inserting new item at location. |
Index.is_(other) | More flexible, faster check like is but that works through views. |
Index.is_boolean() | |
Index.is_categorical() | Check if the Index holds categorical data. |
Index.is_floating() | |
Index.is_integer() | |
Index.is_interval() | |
Index.is_mixed() | |
Index.is_numeric() | |
Index.is_object() | |
Index.min([axis, skipna]) | Return the minimum value of the Index. |
Index.max([axis, skipna]) | Return the maximum value of the Index. |
Index.reindex(target[, method, level, …]) | Create index with target’s values (move/add/delete values as necessary). |
Index.rename(name[, inplace]) | Alter Index or MultiIndex name. |
Index.repeat(repeats[, axis]) | Repeat elements of a Index. |
Index.where(cond[, other]) | Return an Index of same shape as self and whose corresponding entries are from self where cond is True and otherwise are from other. |
Index.take(indices[, axis, allow_fill, …]) | Return a new Index of the values selected by the indices. |
Index.putmask(mask, value) | Return a new Index of the values set with the mask. |
Index.unique([level]) | Return unique values in the index. |
Index.nunique([dropna]) | Return number of unique elements in the object. |
Index.value_counts([normalize, sort, …]) | Return a Series containing counts of unique values. |
Compatibility with MultiIndex
Index.set_names(names[, level, inplace]) | Set Index or MultiIndex name. |
Index.is_lexsorted_for_tuple(tup) | |
Index.droplevel([level]) | Return index with requested level(s) removed. |
Missing Values
Index.fillna([value, downcast]) | Fill NA/NaN values with the specified value |
Index.dropna([how]) | Return Index without NA/NaN values |
Index.isna() | Detect missing values. |
Index.notna() | Detect existing (non-missing) values. |
Conversion
Index.astype(dtype[, copy]) | Create an Index with values cast to dtypes. |
Index.item() | Return the first element of the underlying data as a python scalar. |
Index.map(mapper[, na_action]) | Map values using input correspondence (a dict, Series, or function). |
Index.ravel([order]) | Return an ndarray of the flattened values of the underlying data. |
Index.to_list() | Return a list of the values. |
Index.to_native_types([slicer]) | Format specified values of self and return them. |
Index.to_series([index, name]) | Create a Series with both index and values equal to the index keys useful with map for returning an indexer based on an index. |
Index.to_frame([index, name]) | Create a DataFrame with a column containing the Index. |
Index.view([cls]) |
Sorting
Index.argsort(*args, **kwargs) | Return the integer indices that would sort the index. |
Index.searchsorted(value[, side, sorter]) | Find indices where elements should be inserted to maintain order. |
Index.sort_values([return_indexer, ascending]) | Return a sorted copy of the index. |
Time-specific operations
Index.shift([periods, freq]) | Shift index by desired number of time frequency increments. |
Combining / joining / set operations
Index.append(other) | Append a collection of Index options together. |
Index.join(other[, how, level, …]) | Compute join_index and indexers to conform data structures to the new index. |
Index.intersection(other[, sort]) | Form the intersection of two Index objects. |
Index.union(other[, sort]) | Form the union of two Index objects. |
Index.difference(other[, sort]) | Return a new Index with elements from the index that are not in other. |
Index.symmetric_difference(other[, …]) | Compute the symmetric difference of two Index objects. |
Selecting
Index.asof(label) | Return the label from the index, or, if not present, the previous one. |
Index.asof_locs(where, mask) | Finds the locations (indices) of the labels from the index for every entry in the where argument. |
Index.contains(key) | Return a boolean indicating whether the provided key is in the index. |
Index.get_duplicates() | (DEPRECATED) Extract duplicated index elements. |
Index.get_indexer(target[, method, limit, …]) | Compute indexer and mask for new index given the current index. |
Index.get_indexer_for(target, **kwargs) | Guaranteed return of an indexer even when non-unique. |
Index.get_indexer_non_unique(target) | Compute indexer and mask for new index given the current index. |
Index.get_level_values(level) | Return an Index of values for requested level. |
Index.get_loc(key[, method, tolerance]) | Get integer location, slice or boolean mask for requested label. |
Index.get_slice_bound(label, side, kind) | Calculate slice bound that corresponds to given label. |
Index.get_value(series, key) | Fast lookup of value from 1-dimensional ndarray. |
Index.get_values() | Return Index data as an numpy.ndarray. |
Index.set_value(arr, key, value) | Fast lookup of value from 1-dimensional ndarray. |
Index.isin(values[, level]) | Return a boolean array where the index values are in values. |
Index.slice_indexer([start, end, step, kind]) | For an ordered or unique index, compute the slice indexer for input labels and step. |
Index.slice_locs([start, end, step, kind]) | Compute slice locations for input labels. |
Numeric Index
RangeIndex | Immutable Index implementing a monotonic integer range. |
Int64Index | Immutable ndarray implementing an ordered, sliceable set. |
UInt64Index | Immutable ndarray implementing an ordered, sliceable set. |
Float64Index | Immutable ndarray implementing an ordered, sliceable set. |
RangeIndex.from_range(data[, name, dtype]) | Create RangeIndex from a range (py3), or xrange (py2) object. |
CategoricalIndex
CategoricalIndex | Immutable Index implementing an ordered, sliceable set. |
Categorical Components
CategoricalIndex.codes | |
CategoricalIndex.categories | |
CategoricalIndex.ordered | |
CategoricalIndex.rename_categories(*args, …) | Renames categories. |
CategoricalIndex.reorder_categories(*args, …) | Reorders categories as specified in new_categories. |
CategoricalIndex.add_categories(*args, **kwargs) | Add new categories. |
CategoricalIndex.remove_categories(*args, …) | Removes the specified categories. |
CategoricalIndex.remove_unused_categories(…) | Removes categories which are not used. |
CategoricalIndex.set_categories(*args, **kwargs) | Sets the categories to the specified new_categories. |
CategoricalIndex.as_ordered(*args, **kwargs) | Set the Categorical to be ordered. |
CategoricalIndex.as_unordered(*args, **kwargs) | Set the Categorical to be unordered. |
Modifying and Computations
CategoricalIndex.map(mapper) | Map values using input correspondence (a dict, Series, or function). |
CategoricalIndex.equals(other) | Determines if two CategorialIndex objects contain the same elements. |
IntervalIndex
IntervalIndex | Immutable index of intervals that are closed on the same side. |
IntervalIndex Components
IntervalIndex.from_arrays(left, right[, …]) | Construct from two arrays defining the left and right bounds. |
IntervalIndex.from_tuples(data[, closed, …]) | Construct an IntervalIndex from an array-like of tuples |
IntervalIndex.from_breaks(breaks[, closed, …]) | Construct an IntervalIndex from an array of splits. |
IntervalIndex.contains(key) | Return a boolean indicating if the key is IN the index |
IntervalIndex.left | Return the left endpoints of each Interval in the IntervalIndex as an Index |
IntervalIndex.right | Return the right endpoints of each Interval in the IntervalIndex as an Index |
IntervalIndex.mid | Return the midpoint of each Interval in the IntervalIndex as an Index |
IntervalIndex.closed | Whether the intervals are closed on the left-side, right-side, both or neither |
IntervalIndex.length | Return an Index with entries denoting the length of each Interval in the IntervalIndex |
IntervalIndex.values | Return the IntervalIndex’s data as an IntervalArray. |
IntervalIndex.is_non_overlapping_monotonic | Return True if the IntervalIndex is non-overlapping (no Intervals share points) and is either monotonic increasing or monotonic decreasing, else False |
IntervalIndex.is_overlapping | Return True if the IntervalIndex has overlapping intervals, else False. |
IntervalIndex.get_loc(key[, method]) | Get integer location, slice or boolean mask for requested label. |
IntervalIndex.get_indexer(target[, method, …]) | Compute indexer and mask for new index given the current index. |
IntervalIndex.set_closed(closed) | Return an IntervalIndex identical to the current one, but closed on the specified side |
IntervalIndex.overlaps(other) | Check elementwise if an Interval overlaps the values in the IntervalIndex. |
IntervalIndex.to_tuples([na_tuple]) | Return an Index of tuples of the form (left, right) |
MultiIndex
MultiIndex | A multi-level, or hierarchical, index object for pandas objects. |
IndexSlice | Create an object to more easily perform multi-index slicing |
MultiIndex Constructors
MultiIndex.from_arrays(arrays[, sortorder, …]) | Convert arrays to MultiIndex. |
MultiIndex.from_tuples(tuples[, sortorder, …]) | Convert list of tuples to MultiIndex. |
MultiIndex.from_product(iterables[, …]) | Make a MultiIndex from the cartesian product of multiple iterables. |
MultiIndex.from_frame(df[, sortorder, names]) | Make a MultiIndex from a DataFrame. |
MultiIndex Properties
MultiIndex.names | Names of levels in MultiIndex |
MultiIndex.levels | |
MultiIndex.codes | |
MultiIndex.nlevels | Integer number of levels in this MultiIndex. |
MultiIndex.levshape | A tuple with the length of each level. |
MultiIndex Components
MultiIndex.set_levels(levels[, level, …]) | Set new levels on MultiIndex. |
MultiIndex.set_codes(codes[, level, …]) | Set new codes on MultiIndex. |
MultiIndex.to_hierarchical(n_repeat[, n_shuffle]) | (DEPRECATED) Return a MultiIndex reshaped to conform to the shapes given by n_repeat and n_shuffle. |
MultiIndex.to_flat_index() | Convert a MultiIndex to an Index of Tuples containing the level values. |
MultiIndex.to_frame([index, name]) | Create a DataFrame with the levels of the MultiIndex as columns. |
MultiIndex.is_lexsorted() | Return True if the codes are lexicographically sorted |
MultiIndex.sortlevel([level, ascending, …]) | Sort MultiIndex at the requested level. |
MultiIndex.droplevel([level]) | Return index with requested level(s) removed. |
MultiIndex.swaplevel([i, j]) | Swap level i with level j. |
MultiIndex.reorder_levels(order) | Rearrange levels using input order. |
MultiIndex.remove_unused_levels() | Create a new MultiIndex from the current that removes unused levels, meaning that they are not expressed in the labels. |
MultiIndex Selecting
MultiIndex.get_loc(key[, method]) | Get location for a label or a tuple of labels as an integer, slice or boolean mask. |
MultiIndex.get_loc_level(key[, level, …]) | Get both the location for the requested label(s) and the resulting sliced index. |
MultiIndex.get_indexer(target[, method, …]) | Compute indexer and mask for new index given the current index. |
MultiIndex.get_level_values(level) | Return vector of label values for requested level, equal to the length of the index. |
DatetimeIndex
DatetimeIndex | Immutable ndarray of datetime64 data, represented internally as int64, and which can be boxed to Timestamp objects that are subclasses of datetime and carry metadata such as frequency information. |
Time/Date Components
DatetimeIndex.year | The year of the datetime. |
DatetimeIndex.month | The month as January=1, December=12. |
DatetimeIndex.day | The days of the datetime. |
DatetimeIndex.hour | The hours of the datetime. |
DatetimeIndex.minute | The minutes of the datetime. |
DatetimeIndex.second | The seconds of the datetime. |
DatetimeIndex.microsecond | The microseconds of the datetime. |
DatetimeIndex.nanosecond | The nanoseconds of the datetime. |
DatetimeIndex.date | Returns numpy array of python datetime.date objects (namely, the date part of Timestamps without timezone information). |
DatetimeIndex.time | Returns numpy array of datetime.time. |
DatetimeIndex.timetz | Returns numpy array of datetime.time also containing timezone information. |
DatetimeIndex.dayofyear | The ordinal day of the year. |
DatetimeIndex.weekofyear | The week ordinal of the year. |
DatetimeIndex.week | The week ordinal of the year. |
DatetimeIndex.dayofweek | The day of the week with Monday=0, Sunday=6. |
DatetimeIndex.weekday | The day of the week with Monday=0, Sunday=6. |
DatetimeIndex.quarter | The quarter of the date. |
DatetimeIndex.tz | |
DatetimeIndex.freq | Return the frequency object if it is set, otherwise None. |
DatetimeIndex.freqstr | Return the frequency object as a string if it is set, otherwise None. |
DatetimeIndex.is_month_start | Indicates whether the date is the first day of the month. |
DatetimeIndex.is_month_end | Indicates whether the date is the last day of the month. |
DatetimeIndex.is_quarter_start | Indicator for whether the date is the first day of a quarter. |
DatetimeIndex.is_quarter_end | Indicator for whether the date is the last day of a quarter. |
DatetimeIndex.is_year_start | Indicate whether the date is the first day of a year. |
DatetimeIndex.is_year_end | Indicate whether the date is the last day of the year. |
DatetimeIndex.is_leap_year | Boolean indicator if the date belongs to a leap year. |
DatetimeIndex.inferred_freq | Tryies to return a string representing a frequency guess, generated by infer_freq. |
Selecting
DatetimeIndex.indexer_at_time(time[, asof]) | Returns index locations of index values at particular time of day (e.g. |
DatetimeIndex.indexer_between_time(…[, …]) | Return index locations of values between particular times of day (e.g., 9:00-9:30AM). |
Time-specific operations
DatetimeIndex.normalize(*args, **kwargs) | Convert times to midnight. |
DatetimeIndex.strftime(*args, **kwargs) | Convert to Index using specified date_format. |
DatetimeIndex.snap([freq]) | Snap time stamps to nearest occurring frequency |
DatetimeIndex.tz_convert(*args, **kwargs) | Convert tz-aware Datetime Array/Index from one time zone to another. |
DatetimeIndex.tz_localize(*args, **kwargs) | Localize tz-naive Datetime Array/Index to tz-aware Datetime Array/Index. |
DatetimeIndex.round(*args, **kwargs) | Perform round operation on the data to the specified freq. |
DatetimeIndex.floor(*args, **kwargs) | Perform floor operation on the data to the specified freq. |
DatetimeIndex.ceil(*args, **kwargs) | Perform ceil operation on the data to the specified freq. |
DatetimeIndex.month_name(*args, **kwargs) | Return the month names of the DateTimeIndex with specified locale. |
DatetimeIndex.day_name(*args, **kwargs) | Return the day names of the DateTimeIndex with specified locale. |
Conversion
DatetimeIndex.to_period(*args, **kwargs) | Cast to PeriodArray/Index at a particular frequency. |
DatetimeIndex.to_perioddelta(*args, **kwargs) | Calculate TimedeltaArray of difference between index values and index converted to PeriodArray at specified freq. |
DatetimeIndex.to_pydatetime(*args, **kwargs) | Return Datetime Array/Index as object ndarray of datetime.datetime objects |
DatetimeIndex.to_series([keep_tz, index, name]) | Create a Series with both index and values equal to the index keys useful with map for returning an indexer based on an index |
DatetimeIndex.to_frame([index, name]) | Create a DataFrame with a column containing the Index. |
TimedeltaIndex
TimedeltaIndex | Immutable ndarray of timedelta64 data, represented internally as int64, and which can be boxed to timedelta objects |
Components
TimedeltaIndex.days | Number of days for each element. |
TimedeltaIndex.seconds | Number of seconds (>= 0 and less than 1 day) for each element. |
TimedeltaIndex.microseconds | Number of microseconds (>= 0 and less than 1 second) for each element. |
TimedeltaIndex.nanoseconds | Number of nanoseconds (>= 0 and less than 1 microsecond) for each element. |
TimedeltaIndex.components | Return a dataframe of the components (days, hours, minutes, seconds, milliseconds, microseconds, nanoseconds) of the Timedeltas. |
TimedeltaIndex.inferred_freq | Tryies to return a string representing a frequency guess, generated by infer_freq. |
Conversion
TimedeltaIndex.to_pytimedelta(*args, **kwargs) | Return Timedelta Array/Index as object ndarray of datetime.timedelta objects. |
TimedeltaIndex.to_series([index, name]) | Create a Series with both index and values equal to the index keys useful with map for returning an indexer based on an index. |
TimedeltaIndex.round(freq[, ambiguous, …]) | Perform round operation on the data to the specified freq. |
TimedeltaIndex.floor(freq[, ambiguous, …]) | Perform floor operation on the data to the specified freq. |
TimedeltaIndex.ceil(freq[, ambiguous, …]) | Perform ceil operation on the data to the specified freq. |
TimedeltaIndex.to_frame([index, name]) | Create a DataFrame with a column containing the Index. |
PeriodIndex
PeriodIndex | Immutable ndarray holding ordinal values indicating regular periods in time such as particular years, quarters, months, etc. |
Properties
PeriodIndex.day | The days of the period |
PeriodIndex.dayofweek | The day of the week with Monday=0, Sunday=6 |
PeriodIndex.dayofyear | The ordinal day of the year |
PeriodIndex.days_in_month | The number of days in the month |
PeriodIndex.daysinmonth | The number of days in the month |
PeriodIndex.end_time | |
PeriodIndex.freq | Return the frequency object if it is set, otherwise None. |
PeriodIndex.freqstr | Return the frequency object as a string if it is set, otherwise None. |
PeriodIndex.hour | The hour of the period |
PeriodIndex.is_leap_year | Logical indicating if the date belongs to a leap year |
PeriodIndex.minute | The minute of the period |
PeriodIndex.month | The month as January=1, December=12 |
PeriodIndex.quarter | The quarter of the date |
PeriodIndex.qyear | |
PeriodIndex.second | The second of the period |
PeriodIndex.start_time | |
PeriodIndex.week | The week ordinal of the year |
PeriodIndex.weekday | The day of the week with Monday=0, Sunday=6 |
PeriodIndex.weekofyear | The week ordinal of the year |
PeriodIndex.year | The year of the period |
Methods
PeriodIndex.asfreq(*args, **kwargs) | Convert the Period Array/Index to the specified frequency freq. |
PeriodIndex.strftime(*args, **kwargs) | Convert to Index using specified date_format. |
PeriodIndex.to_timestamp(*args, **kwargs) | Cast to DatetimeArray/Index. |
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.24.2/reference/indexing.html