你好,我需要帮助。
我有一个数据框,例如:
表:
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
的名称,我该如何考虑呢?
答案 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(-)