【发布时间】:2020-05-09 17:09:06
【问题描述】:
我有一个这样的数据框,我想实现这个:
如果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 这样更复杂怎么办?
【问题讨论】:
-
您能发布您预期的输出数据帧吗?
标签: python pandas comparison min calculation