Как я могу найти начальное и конечное вхождение символа в Python
У меня есть dataframe df со следующими идентификаторами (в Col). Последнее вхождение A/B / C представляет собой начало, а последнее вхождение X-конец. Я должен игнорировать любые другие A,B, C между началом и концом (например, строки 8 и 9).
Я должен найти начальные и конечные записи из этих данных и присвоить номер каждому из этих вхождений. Количество столбцов - это мой желаемый результат:
Col count P Q A A A 1 Q 1 Q 1 B 1 C 1 S 1 S 1 X 1 X 1 X 1 Q Q R R C C 2 D 2 E 2 B 2 K 2 D 2 E 2 E 2 X 2 X 2
Настоящий кодекс:
lc1 = df.index[df.Col.eq('A') & df.Col.ne(df.Col.shift(-1))]
дал бы мне массив всех последних вхождений значений индекса "а", в данном случае [5].
lc1 = df.index[df.Col.eq('C') & df.Col.ne(df.Col.shift(-1))] # [20] lc2 = df.index[df.Col.eq('X') & df.Col.ne(df.Col.shift(-1))] # [14,29]
Я бы использовал iloc для печати значений подсчета:
df.iloc[5:14]['count'] = 1 df.iloc[20:29]['count'] = 2
Как я могу найти индексы A/B/C вместе и вывести значения количества каждого начального и конечного вхождения?
Что я уже пробовал:
lc1 = df.index[df.Col.eq('A') & df.Col.ne(df.Col.shift(-1))] df.iloc[5:14]['count'] = 1
Richard MacCutchan
Вы можете получить более быстрый ответ по адресу Сообщество панд & mdash; панды: библиотека анализа данных Python[^].