Как поменять значение в столбце на основе условия к другому столбцу?
Пытаюсь пробежаться по столбцу кто, и если там есть значение "2010", поменять значение в столбце Марка на "55п". При этом, другие значения в этом столбце должны оставаться нетронутыми.
Пробовал разные методы остановился на replace, но грамотно прописать не выходит.
Как правильно составить конструкцию?
Примерно представляю себе код так:
x['Марка'].replace(;, "55п", inplace=True) if x['кто'] == "2010"
| Кто | Кол | Марка |
|---|---|---|
| 2040 | 32 | 43л |
| 2010 | 44 | 88о |
| 2070 | 57 | 77ж |
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
В Pandas подобные задачи делаются так:
- сначала создается маска булевых значений для каждой строки - для тех строк, которые мы хотим изменить -
True, для всех остальныхFalse - заменяем значения в строках, отобранных по булевой маске из предыдущего пункта
Все это можно сделать однострочником:
df.loc[df["Кто"] == 2010, "Марка"] = "55п"