Member 12721652 Ответов: 0

Как я могу найти начальное и конечное вхождение символа в 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[^].

0 Ответов