python-3.x - 使用其他列的元素在 pandas 中创建一个新列

标签 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 名称?

最佳答案

使用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(-)

关于python-3.x - 使用其他列的元素在 pandas 中创建一个新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59733941/

相关文章:

python - 获取 Pandas 的月平均值

Python JSON 到 Pandas 数据框

python - 使用python删除字典内列表中的元素

python - 为什么 Python 2.7 中的 dict 定义比 Python 3.x 中的更快?

python - 美丽汤用户警告: No parser was explicitly specified

python - 在 Python 中遍历双端队列的时间复杂度是多少?

python - 如何将欧几里德距离函数应用于 Pandas 数据框中的 groupby 对象?

python - Pandas:合并日期时间间隔

python - 如何显示日期选择器小部件?

python - 将 PySpark 数据框重新采样从几个月到几周