Как использовать функцию where() в Pandas (с примерами)


Функцию where() можно использовать для замены определенных значений в кадре данных pandas.

Эта функция использует следующий базовый синтаксис:

df.where (cond, other=nan)

Для каждого значения в pandas DataFrame, где cond имеет значение True, сохраняется исходное значение.

Для каждого значения, где cond имеет значение False, исходное значение заменяется значением, указанным другим аргументом.

В следующих примерах показано, как использовать этот синтаксис на практике со следующими пандами DataFrame:

import pandas as pd

#define DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
 'assists': [5, 7, 7, 9, 12, 9, 9, 4],
 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12

Пример 1: замена значений во всем фрейме данных

В следующем коде показано, как использовать функцию where() для замены всех значений, которые не соответствуют определенному условию во всем кадре данных pandas, значением NaN.

#keep values that are greater than 7, but replace all others with NaN
df.where (df>7)

 points assists rebounds
0 25 NaN 11.0
1 12 NaN 8.0
2 15 NaN 10.0
3 14 9.0 NaN
4 19 12.0 NaN
5 23 9.0 NaN
6 25 9.0 9.0
7 29 NaN 12.0

Мы также можем использовать другой аргумент, чтобы заменить значения чем-то другим, кроме NaN.

#keep values that are greater than 7, but replace all others with 'low'
df.where (df>7, other='low')

 points assists rebounds
0 25 low 11
1 12 low 8
2 15 low 10
3 14 9 low
4 19 12 low
5 23 9 low
6 25 9 9
7 29 low 12

Пример 2: заменить значения в определенном столбце DataFrame

В следующем коде показано, как использовать функцию where() для замены всех значений, которые не соответствуют определенному условию в определенном столбце DataFrame.

#keep values greater than 15 in 'points' column, but replace others with 'low'
df['points'] = df['points']. where(df['points']>15, other='low')

#view DataFrame
df

 points assists rebounds
0 25 5 11
1 low 7 8
2 low 7 10
3 low 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12

Полную онлайн-документацию по функции where() в pandas можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как использовать другие распространенные функции в pandas:

Как использовать функцию description() в Pandas
Как использовать функцию idxmax() в Pandas
Как применить функцию к выбранным столбцам в Pandas

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.