Чтобы получить индекс строки в Pandas, мы можем использовать логический метод индексации, метод loc и метод get_loc с объектом индекса.
Мы также можем использовать косвенные методы, которые помогут нам получить индекс строки в Pandas, например:
- iterrows;
- функция query();
- функция np.where().
- Используя логическое индексирование
- С помощью метода index.get_loc()
- Используя метод loc
- Используя iterrows
- Используя метод query()
- С помощью функции np.where()
Используя логическое индексирование
Логическое индексирование в Pandas Python — это способ использования логического условия для фильтрации и выбора определенных строк в DataFrame.
Атрибут index DataFrame для поиска индекса строки в кадре данных Pandas с помощью функции tolist(), которая преобразует индекс результата в список.
Вот пример, который дает индекс строки в Python Pandas в соответствии с предоставленным условием.
import pandas as pd employee_data = {'Name': ['Alice', 'Bob', 'Charlie', 'Bob'], 'Age': [25, 30, 35, 45]} df = pd.DataFrame(employee_data) index_row = df.index[df['Name'] == 'Bob'].tolist() print("Index of the row:", index_row)
Выход:
Index of the row: [1, 3]
После реализации кода в редакторе Python Pycharm я сделал снимок экрана ниже:
С помощью метода index.get_loc()
.index.get_loc() в Python позволяет нам напрямую получить целочисленную позицию индексной метки.
Используя этот метод, мы можем найти индекс строки, используя значение, найденное в столбце «Имя».
Код:
import pandas as pd cities_data = {'City': ['New York', 'Austin', 'Chicago', 'Houston', 'Phoenix'], 'Population(millions)': [8.4, 3.9, 2.7, 2.3, 1.7], 'State': ['New York', 'Texas', 'Illinois', 'Texas', 'Arizona']} cities_df = pd.DataFrame(cities_data) row_index = cities_df.index.get_loc(cities_df[cities_df['State'] == 'Texas'].index[0]) print("Index using Index of a Value is:", row_index)
Вывод: в этом коде мы сначала находим индексную метку строки со столбцом «Имя», значение которого «Штат» равно «Техас», а затем используем .index.get_loc(), чтобы получить ее целочисленное местоположение.
Index using Index of a Value is: 1
Скриншот упомянут ниже:
Используя метод loc
Метод loc в Python Pandas основан на метках и позволяет нам получать доступ к группе строк и столбцов по меткам. Этот метод можно использовать вместе со свойством Index для получения индекса строки на основе метки.
Вот пример, иллюстрирующий использование метода loc для получения индекса строки в Python.
import pandas as pd cities_data = {'City': ['New York', 'Austin', 'Chicago', 'Houston', 'Phoenix'], 'State': ['New York', 'Texas', 'Illinois', 'Texas', 'Arizona']} df = pd.DataFrame(cities_data) index_row = df.index[df['State'] == 'Texas'].tolist()[:] print("Index of the row is:", index_row)
Выход:
Index of the row is: [1, 3]
Вот скриншот исходного кода:
Используя iterrows
Метод iterrows в Python позволяет нам перебирать строки Pandas DataFrame как пары (индекс, серия).
Хотя это не самый эффективный метод, он обеспечивает простой способ получения индекса.
Ниже приведен пример:
import pandas as pd USA_data = {'Capital': ['Sacramento', 'Columbus', 'Albany', 'Austin', 'Phoenix'], 'State': ['California', 'Ohio', 'New York', 'Texas', 'Arizona']} df = pd.DataFrame(USA_data) for index, row in df.iterrows(): if row['Capital'] == 'Albany': index_row = index print("Index of row is:", index_row)
Выход:
Index of row is: 2
Упомянутый ниже снимок экрана сделан после его реализации в редакторе Pycharm.
Используя метод query()
Метод query() в Pandas позволяет нам фильтровать строки на основе выражения запроса. Хотя он не предоставляет индекс строки напрямую, мы можем использовать его с другими методами, такими как index, для достижения этой цели.
Вот пример использования метода query() для получения индекса строки в Pandas:
import pandas as pd data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'], 'Age': [25, 30, 35, 28, 32]} df = pd.DataFrame(data) query_result = df.query("Name == 'Bob'") index_row = query_result.index[0] print("Index of the row is:", index_row)
Выход:
Index of the row is: 1
После выполнения я сделал снимок экрана ниже:
С помощью функции np.where()
Другой способ получить индекс — передать условие методу numpy.where().
Функция np.where() используется для поиска индексов элементов во входном массиве, когда указанное условие истинно.
Давайте посмотрим пример, как это сделать:
import pandas as pd import numpy as np data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'], 'Age': [25, 30, 35, 28, 32]} df = pd.DataFrame(data) print(list(np.where(df["Age"] > 30)))
Выход:
[array([2, 4], dtype=int64)]
Скриншот упомянут ниже: