Подсчитайте первые последовательные матчи в группе.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Подсчитайте первые последовательные матчи в группе.

Сообщение Anonymous »

Я новичок в Pandas, я пытаюсь подсчитать общее количество первых последовательных экземпляров цвета из этого DataFrame

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

    car   color
0   audi  black
1   audi  black
2   audi   blue
3   audi  black
4    bmw   blue
5    bmw  green
6    bmw   blue
7    bmw   blue
8   fiat  green
9   fiat  green
10  fiat  green
11  fiat   blue
Благодаря jezrael он у меня есть, поэтому он подсчитывает совокупное количество раз, когда первый цвет появляется следующим образом:

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

import pandas as pd

df = pd.DataFrame(data={
'car': ['audi', 'audi', 'audi', 'audi', 'bmw', 'bmw', 'bmw', 'bmw', 'fiat', 'fiat', 'fiat', 'fiat'],'color': ['black', 'black', 'blue', 'black', 'blue', 'green', 'blue', 'blue', 'green', 'green', 'green', 'blue']
})

df1 = (df.groupby('car')['color']
.transform('first')
.eq(df['color'])
.view('i1')
.groupby(df['car'])
.sum()
.reset_index(name='colour_cars'))

print(df1)

И это хорошо подходит для подсчета общей суммы.

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

    car  colour_cars
0  audi            3
1   bmw            3
2  fiat            3
Но оказывается, что мне действительно нужно, так это посчитать первую последовательную сумму, так и должно быть

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

    car  colour_cars
0  audi            2
1   bmw            1
2  fiat            3

Я пытался использовать функцию Apply, чтобы остановить серию .sum(), если .eq обнаруживает False, любая помощь было бы очень полезно найти способ прервать счетчик после возврата False из .eq.

Подробнее здесь: https://stackoverflow.com/questions/590 ... on-a-group
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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