Я ищу более быстрый способ применения значений к столбцу в DataFrame.Значение основано на двух значениях True and False
в первом и втором столбце.Это мое текущее решение:
df['result'] = df.check1.astype(int)
for i in range(len(df)):
if df.result[i] != 1:
df.result[i] = df.result.shift(1)[i] + df.check2[i].astype(int)
, которое дает этот результат:
check1 check2 result
0 True False 1
1 False False 1
2 False False 1
3 False False 1
4 False False 1
5 False False 1
6 False True 2
7 False False 2
8 False True 3
9 False False 3
10 False True 4
11 False False 4
12 False True 5
13 False False 5
14 False True 6
15 False False 6
16 False True 7
17 False False 7
18 False False 7
19 False False 7
20 False True 8
21 False False 8
22 False True 9
23 True False 1
24 False False 1
Таким образом, третий столбец должен быть числом, основанным на значении в строке над ним.Если check1 - True, число должно вернуться к 1. Если check2 - true, к номеру необходимо добавить 1.В противном случае число остается неизменным.
Текущий код в порядке, но это занимает слишком много времени, так как мне нужно применить это к DataFrame с прибл.70 000 строк.Я почти уверен, что это можно улучшить (я предполагаю использовать функцию apply, но я не уверен).
Есть идеи?