首页 > 解决方案 > 基于字符串计算列值

问题描述

我有两列,第一列有字符串是或否,另一列有数值。我想创建一个新列,它的值基于第二列中的乘法值。

实际数据框

COL1 =['YES','YES','NO','YES','YES','YES','YES','NO','YES','YES','NO',]
COL2 = [1,2,6,3,5,4,7,1,7,2,2]

所需的数据帧

   |COL1|COL2|COL3|

    |YES|1|0|
    |YES|2|0|
    |NO|6|6|
    |YES|3|18|
    |YES|5|1|
    |YES|4|1|
    |YES|7|1|
    |NO|1|3|
    |YES|7|7|
    |YES|2|1|
    |NO|2|14|

标签: pythonpandas

解决方案


假设这是您的数据结构:

data=[['yes', 1], ['yes','2'], ...]

letlast等于未忽略的数据,在这种情况下 data[0] 表示第一个“是”。

while last[0] == data[index][0]:
    data[index].append(0)
    index++

要解决乘法,替换append(0)append(last[1] * data[index][1])并继续到结束索引到达数据的末尾。

而且由于您的前 2 个“是”和“1”的值似乎存在一些差异,因此该标志也应该不难放入“上一个”标志。


推荐阅读