У меня есть такой фрейм данных, я хочу добиться этого:
, если знак A совпадает со знаком B, получить новый столбец C = min (3, | A |); если знак A отличается от знака B, C = min (3, B); если значения A и B равны нулю, C = A
Type subType A B C
X a -1 4 3
X a 5 9 3
X a 5 9 3
X b 1 4 1
X b 3 5 ...
X b 5 0
Y a -1 1
Y a 3 2
Y a -5 3
Y b 1 4
Y b 3 5
Y b 5 -2
Я попытался:
if df["A"] * df["B"] > 0:
df["C"] = (3, abs(df["A"]).min(axis=1)
Это дало мне ошибку, похоже, я не могу сравнить значение '3 'с колонкой напрямую, какие-либо предложения?
Продолжение: что, если формула более сложная, как C = A + min(3, |A|) *B
?