使用其他列的元素在熊猫中创建一个新列

时间:2020-01-14 12:37:11

标签: python-3.x pandas

你好,我需要帮助。

我有一个数据框,例如:

表:

Col1    Col2    Col3    Sign
Loc1    1   60  -
Loc2    10  90  +
Loc3    40  100 +
Loc4    20  40  -

,然后从此表中创建一个Newcol,并在其他列中添加元素,例如:

Col1    Col2    Col3    Sign    Newcol
Loc1    1   60  -   Loc1:1-60(-)
Loc2    10  90  +   Loc2:11-90(+)
Loc3    40  100 +   Loc3:41-100(+)
Loc4    20  40  -   Loc4:20-40(-)

我尝试过:

table["Newcol"]=table['Col1']+":"+str(table['Col2'])+"-"+str(table['Col3'])+"("+table['Sign']+")"

但是,如果我有+符号,我必须在+1上添加Col3作为Newcol的名称,我该如何考虑呢?

1 个答案:

答案 0 :(得分:2)

使用Series.astype转换为字符串并添加1+进行比较,并用Series.add将值转换为整数:

table["Newcol"] = (table['Col1']+":"+
                  (table['Col2'].add(table['Sign'].eq('+').astype(int))).astype(str)+"-"+
                  (table['Col3']).astype(str)+"("+
                   table['Sign']+")")
print (table)
   Col1  Col2  Col3 Sign          Newcol
0  Loc1     1    60    -    Loc1:1-60(-)
1  Loc2    10    90    +   Loc2:11-90(+)
2  Loc3    40   100    +  Loc3:41-100(+)
3  Loc4    20    40    -   Loc4:20-40(-)