L oop назад, чтобы найти равные значения в Pandas - PullRequest
0 голосов
/ 14 июля 2020

Я новичок в Python и пытаюсь сделать довольно простой l oop, чтобы подсчитать, сколько равных значений находится перед каждой строкой. Вот пример.

https://i.stack.imgur.com/EMZE0.png

Вот то, что я пробовал, но не могу понять, как надо.

df['count'] = 0       
count = 1

for i in df.index:
    if df['CD'].loc[i] == 'C':
        for j in range(count):
            if j<i:
                if df['CD'].loc[i] == df['CD'].df[i-j]:
                    df['count'].loc[i] = df['count'].loc[i] + 1
                    count = count + 1
                else:
                    count = 1

Заранее спасибо.

1 Ответ

1 голос
/ 14 июля 2020

Попробуйте следующее:

counts = []    

for i in df.index:
    count = 0
    while True:
        try:
            if df['CD'].loc[i-count] == C:
                count += 1
            else:
                break
        except:
            break
    if count == 0:
        counts.append(0)
    else:
        counts.append(count-1)
df["count"] = counts
...