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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *