Pandas: извлечь значение столбца на основе другого столбца
Вы можете использовать функцию query() в pandas для извлечения значения в одном столбце на основе значения в другом столбце.
Эта функция использует следующий базовый синтаксис:
df. query (" team=='A' ")[" points "]
В этом конкретном примере каждое значение будет извлечено из столбца очков , где столбец команды равен A.
В следующих примерах показано, как использовать этот синтаксис на практике со следующим DataFrame pandas:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'], ' points ': [11, 28, 10, 26, 6, 25, 29, 12]}) #view DataFrame print (df) team position points 0 AG 11 1 AG 28 2 AF10 3AF 26 4 BG 6 5 BG 25 6 BF 29 7 BF 12
Пример 1. Извлечение значений столбца на основе выполненного условия
Следующий код показывает, как извлечь каждое значение из столбца очков , где значение столбца команды равно «A»:
#extract each value in points column where team is equal to 'A' df. query (" team=='A' ")[" points "] 0 11 1 28 2 10 3 26 Name: points, dtype: int64
Эта функция возвращает четыре значения в столбце очков , где соответствующее значение в столбце команды равно «А».
Пример 2. Извлечение значений столбца на основе одного из множества выполненных условий
В следующем коде показано, как извлечь каждое значение из столбца очков , где значение столбца команды равно «A» , а значение столбца позиции равно «G»:
#extract each value in points column where team is 'A' or position is 'G' df. query (" team=='A' | position=='G' ")[" points "] 0 11 1 28 2 10 3 26 4 6 5 25 Name: points, dtype: int64
Эта функция возвращает шесть значений в столбце очков , где соответствующее значение в столбце команды равно «A» или значение в столбце позиции равно «G».
Пример 3. Извлечение значений столбца на основе нескольких выполненных условий
Следующий код показывает, как извлечь каждое значение из столбца очков , где значение столбца команды равно «A» , а значение столбца позиции равно «G»:
#extract each value in points column where team is 'A' and position is 'G' df. query (" team=='A' & position=='G' ")[" points "] 0 11 1 28 Name: points, dtype: int64
Эта функция возвращает два значения в столбце очков , где соответствующее значение в столбце команды равно «A» , а значение в столбце позиции равно «G».
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:
Pandas: как выбирать столбцы по условию
Pandas: удалять строки на основе нескольких условий
Pandas: обновить значения столбцов на основе другого DataFrame