Обычно при работе с библиотекой Pandas в Python возникает необходимость извлечения конкретного значения из ячейки в DataFrame. Допустим, есть условие, которое позволяет выбрать одну конкретную строку из DataFrame, и требуется получить значение из определенного столбца этой строки.
df_filtered = df[(df['column1']==value1) & (df['column2']==value2) & (df['column3']==value3)] value = df_filtered['target_column']
В результате выполнения этого кода в переменной value
будет храниться DataFrame, который содержит одну строку и один столбец, то есть одну ячейку. Однако, если требуется получить непосредственно значение этой ячейки, а не DataFrame, можно воспользоваться одним из следующих способов.
Использование метода iloc
Можно использовать метод iloc
, который позволяет получить доступ к элементу DataFrame по его числовому индексу:
value = df_filtered['target_column'].iloc[0]
В этом случае в переменной value
будет храниться значение первой (и единственной) строки извлеченного DataFrame.
Использование метода values
Еще один способ — использовать метод values
, который возвращает массив numpy со значениями DataFrame:
value = df_filtered['target_column'].values[0]
В этом случае в переменной value
также будет храниться значение первой строки извлеченного DataFrame, но в виде массива numpy.
Использование функции squeeze
Функция squeeze
удаляет оси DataFrame с одним элементом:
value = df_filtered['target_column'].squeeze()
В этом случае в переменной value
будет храниться значение первой строки извлеченного DataFrame, и не требуется указывать индекс [0], так как функция squeeze
автоматически преобразует DataFrame с одним элементом в скалярное значение.
Добавить комментарий