Как считать последовательности в PythonPython

Программы на Python
Anonymous
Как считать последовательности в Python

Сообщение Anonymous »

У меня есть серия, как показано ниже. Серия представляет собой фрейм данных. Я конвертирую в серию только для того, чтобы показать здесь.

Код: Выделить всё

Responses = {N, N, N, N, N, S, N, N, N, N, N, N, S, N, N, N, N, N, N, N, N, N, N, N, N, N, S, S, S, S, S, S, N, N, S, N, N, N, S, S, S, S, N, S, N, N, N, N, N, N, N, S, S, N, N, N, S, S, S, N, S, S, S, S, S, S, S, S,N, N, N, N, N, S, N, N, N, N, N, N, S, N, N, N, N, N, N, N, N, N, N, N, N, N, S, S, S, S, S, S, N, N, S, N, N, N, S, S, S, S, N, S, N, N, N, N, N, N, N, S, S, N, N, N, S, S, S, N, S, S, S, S, S, S, S, S }
Я использую этот код для подсчета наибольшей последовательности «S» (я знаю, что это не лучший способ):

Код: Выделить всё

import csv
import numpy as np
import pandas as pd

df = pd.read_csv('C:\\teste\\pergunta.csv')

count = 0
prev = 0
indexend = 0
indexcount = 0
for i in range(0,len(df)):
if df['Responses'].loc[i] == 'S':
count += 1
indexcount = i
else:
if count > prev:
prev = count
indexend = i
count = 0

if count > prev:
prev = count
indexend = indexcount

print("The longest sequence is "+str(prev))
count = 0
prev = 0
indexend = 0
indexcount = 0
Код говорит, что самая длинная последовательность S равна 8. Это нормально.
Но эта последовательность из 8 S происходит дважды.
Мой вопрос: мне нужен код, который подсчитывает отдельные последовательности S от самой длинной до минимальной.
Что-то вроде:




Последовательность
Частота




8
2 раза


7
1 раз


6
3 раза


5
1 раз


4
x раз


3
x раз


2
x раз




Может кто-нибудь мне помочь?
Спасибо

Вернуться в «Python»