如何根据以前的列有条件地设置空列的值

时间:2019-06-28 16:04:54

标签: python pandas

我要为第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+

2 个答案:

答案 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