Функцию 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