我有一个包含许多列的表。我只对两列感兴趣。让我们称它们为A和B.我想创建一个空列,比如说C = []并根据某些条件为它添加值。
A B
1 10
0 11
0 12
1 09
0 14
0 13
1 12
让我们以上表为例。 如果A列中的值== 1,则将A == 1的B值附加到C列(空列表),直到下一个A == 1出现在A列中。对于A列中的下一个值为1,执行上述操作。
所以我希望我的C列看起来像这样:
A B C
1 10 10
0 11 10
0 12 10
1 09 09
0 14 09
0 13 09
1 12 12
正如您所看到的,对于第一个A == 1,C的值为B,其中A == 1,直到下一个A == 1出现。
我正在尝试这样的事情,但它不起作用:
for i in A:
if i == 1:
C.append(B[A==i])
但是这会遍历我的整个列A并添加许多列表。
我该怎么做呢?
答案 0 :(得分:2)
A = [1,0,0,1,0,0,1]
B = [10,11,12,9,14,13,12]
C = []
temp = B[0] # Initialize a temporary variable to the first item in B
for i in range(len(B)):
if A[i] == 1:
temp = B[i] # Only update temp if 1 was in the A column
C.append(temp)
>>> C
[10, 10, 10, 9, 9, 9, 12]
完成for
循环的几次迭代:
i = 0
,A[0]
为1
,temp
变为B[0]
,即10
i = 1
,A[1]
为0
,temp
仍为B[0]
,10
i = 2
,A[2]
为0
,temp
仍为B[0]
,10
i = 3
,A[3]
为1
,temp
变为B[3]
,即9
......等等。