我有两列,第一列具有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|
答案 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”标志。