как установить значения в строки столбца с логической фильтрацией данных

Я пытаюсь установить значения столбца «FreeSec» равным True для фильтрованных строк моего фрейма данных pandas. Вот код:

 data[data["Brand"].isin(group_clients)].FreeSec = True 

Однако, когда я проверяю значения, они все равно установлены на False .

 >>> data[data["Brand"].isin(group_clients)].FreeSec 12 False 163 False 164 False 165 False 166 False 167 False 168 False 169 False 

Что мне здесь не хватает?

2 Solutions collect form web for “как установить значения в строки столбца с логической фильтрацией данных”

Вы должны использовать loc, чтобы сделать это без цепочки , которая будет работать на этом задании:

 data.loc[data["Brand"].isin(group_clients), "FreeSec"] = True 

Назначение в loc переопределяется, так что деталь реализации того, является ли это фактически просмотром или копией, не имеет значения, имеет значение, если вы цепляетесь так, чтобы избегать / быть очень осторожным.

Он работает по-другому:

 data["FreeSec"][data["Brand"].isin(group_clients)] = True 

Я не эксперт в Pandas, поэтому нужно проверить, почему это работает так.

  • pandas - изменить df.index от float64 до unicode или string
  • Стилирование панд-групп
  • Как сформировать столбец кортежа из двух столбцов в Pandas
  • Неверная форма массива после операции умножения на xarray
  • Получите pandas.read_csv, чтобы читать пустые значения как пустую строку вместо nan
  • Умножьте два pandas DataFrames на основе столбца
  • pandas объединяет несколько кадров данных в столбцах
  • Удаление строки DataFrame в Pandas на основе значения столбца
  • Python - лучший язык программирования в мире.