У меня есть датафрейм для панд:
df = pd.DataFrame({"A": [1, 2, 3, 4, 5, 6], "B": [100, 200, 300, 400, 500,
600]})
И я хочу создать новый столбец с некоторым значением, если соблюдены определенные условия. Проблема: это несколько условий с &
и |
. Я знаю, что могу сделать это только с двумя условиями, а затем с несколькими вызовами df.loc
, но так как мой фактический набор данных довольно огромен с множеством различных значений, которые могут принимать переменные, я хотел бы знать, возможно ли это сделать в одном df.loc
звонок. Я также пробовал np.where
и раньше, но нашел df.loc
в целом проще, поэтому было бы неплохо, если бы я мог придерживаться его.
Код, который я пробовал:
df.loc[(df.A == 1) | (df.A == 2) & (df.B == 600) | (df.B == 200), "C"] =
"1or2and600or200"
что дает мне
print(df)
A B C
0 1 100 1or2and600or200
1 2 200 1or2and600or200
2 3 300 NaN
3 4 400 NaN
4 5 500 NaN
5 6 600 NaN
Это, однако, не то, что я хочу, поскольку df.loc
, вероятно, учитывает только первые два условия. Итак, я бы хотел, чтобы в этом примере кода значение 1or2and600or200
было только в первой строке, а не во второй. Это возможно?
Большое спасибо.