根据字符串计算列值

时间:2018-10-20 02:23:15

标签: python pandas

我有两列,第一列具有YES或NO,而另一列具有数字值。 我想创建一个新列,其值基于第二列中的乘法值。

  • 忽略第一个“ YES”之后的“ YES”行
  • 忽略第一个NO之后的带有NO的行
  • 将第一个YES与第一个NO相乘

实际数据框

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

所需的dataFrame

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

1 个答案:

答案 0 :(得分:0)

假设这是您的数据结构:

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

last等于不可忽略的数据,在这种情况下,第一个“是”为data [0]。

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

要解决乘法问题,请将append(0)替换为append(last[1] * data[index][1]),然后继续到结尾索引到达数据结尾。

由于前两个“ yes”和“ 1”的值似乎有所不同,因此该标志也应该不难抛出“ previous”标志。