When working with dataframes, it’s common for the need to extract the position of a particular cell using some condition or criteria. This can be useful for locating specific values or even performing operations on specific subsets of the dataset. To achieve this task, several methods are discussed in this thread along with sample codes to make it easy for you to understand the methods. If you want to learn more dataframes and the different techniques which are used on them, check out the following threads:
- Checking dataframe for missing values
- Renaming certain columns in a dataframe
- Merge many series to create a dataframe
- Importing every nth row from a CSV file
In each method, the same sample dataframe is used and in each method, we’ll be extracting the row and column number of value 6
.
1. Using "np.where()" method:
- The
np.where()
is a NumPy function that returns the indices of elements in an array that satisfy a given condition. - When a single argument is provided, it returns the indices where the given condition is True.
- In this technique,
np.where()
is used to get indices (row and column number) of value6
.
Note: The indices would appear as one less than the sequential count of indexes, this is because the index starts from position 0
in Python.
2. Using "loc" indexer and "get_loc()" method:
- In this method, the row number is extracted using the
loc
indexer which is a label-based indexing method that allows to access a group of rows and columns by labels or a boolean array. - Then, the
index
attribute is used to extract the row number of the fetched row.
- The column number is extracted using
get_loc()
method which is used to return the index of a column or row. - This method is applied on
df.columns
which has all the column names of the dataframe and we find the location of columnB
since6
is located in columnB
.
3. Using "np.argwhere()" method:
- The
np.argwhere()
is a NumPy function that returns a 2D array of indices of elements that are non-zero or non-false. - In this method, a simple condition is passed to this function to extract the row and column number of value
6
, and since it returns a 2D array,[0]
is used to unpack the inner list in variablesrow
andcol
.
4. Using "np.nonzero()" method:
- The
np.nonzero()
is a NumPy function that returns a tuple of arrays containing the indices of the non-zero elements of its input array. - In this method, the array passed to this function is
df.values == 6
which is a boolean array comprising ofTrue
andFalse
values. - Since
True
corresponds to1
(non-zero) in Python, the function returns the row and column indices of value6
which are then unpacked into the variablesrow
andcol
.