Pandas - Обновление значения в строке на основе условия с помощью .apply () - PullRequest
1 голос
/ 23 октября 2019

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

def helper(row):
    if row["A"] == "TEST":
         row["B"] = "WOW"
     else:
         row["C"] = "NO_GO"


moddf = df.apply(helper, axis=1)

Я могу сделать это с помощью iterrows (), но .apply должен быть НАМНОГО быстрееитерация более 1М строк в df.

1 Ответ

4 голосов
/ 23 октября 2019

Вам не нужно (и не следует использовать) применять:

# toy data
df = pd.DataFrame({'A':['TEST','NO'],
              'B' : ['A','B'],
              'C' :list('12')})

s = df['A']=='TEST'

df.loc[s,'B'] = 'WOW'
df.loc[~s, 'C'] = 'NO_GO'

Вывод:

      A    B      C
0  TEST  WOW      1
1    NO    B  NO_GO
...