我要为第3列插入值,如下所示:
A+ if col 1 is a and col 2 is positive
A- if col 1 is a and col 2 is negative
B+ if col 1 is B and col 2 is positive
B- if col 1 is B and col 2 is negative
数据:
COL1 COL2 COL3
0 a -2
1 a 4
2 b 10
3 b -8
4 a 10
5 b 5
因此,我希望得到以下结果的df:
COL1 COL2 COL3
0 a -2 A-
1 a 4 A+
2 b 10 B+
3 b -8 B-
4 a 10 A+
5 b 5 B+
答案 0 :(得分:3)
anky_91注意到np.where
几乎是重复的:
df['COL3'] = df.COL1.str.upper() + np.where(df.COL2.gt(0),'+', '-')
给出预期的输出:
COL1 COL2 COL3
0 a -2 A-
1 a 4 A+
2 b 10 B+
3 b -8 B-
4 a 10 A+
5 b 5 B+
答案 1 :(得分:0)
这抓住了0
表示没有符号符号的机会
df.COL1.str.upper() + np.sign(df.COL2).map(['', '+', '-'].__getitem__)
0 A-
1 A+
2 B+
3 B-
4 A+
5 B+
dtype: object