Я пытаюсь вернуть совокупное count
количества раз, когда есть изменение значений в column
.
Так что для df
ниже, я хочу вернуть счетчиквремен, когда 'Home'
меняется на 'Away'
и наоборот.Я не хочу возвращать количество раз, когда отображается значение.
import pandas as pd
d = ({
'Who' : ['Home','Away','','','Home','Away','Home','Home','Home','','Away','Home'],
})
df = pd.DataFrame(data = d)
Я пробовал это.
df['Home_count'] = (df['Who'] == 'Home').cumsum()
df['Away_count'] = (df['Who'] == 'Away').cumsum()
Что возвращает:
Who Home_count Away_count
0 Home 1 0
1 Away 1 1
2 1 1
3 1 1
4 Home 2 1
5 Away 2 2
6 Home 3 2
7 Home 4 2
8 Home 5 2
9 5 2
10 Away 5 3
11 Home 6 3
Но я пытаюсь подсчитать, сколько раз оно меняется.Не общее количество каждого значения.Так что если там написано «Дом, Дом, Дом, В гостях», рядом с «В гостях» должен быть только счет.Не 1,2,3 против дома.
Home 1 #Theres a change so provide a count
Home #No change so no count
Home #No change so no count
Away 1 #Theres a change so provide a count
Home 2 #Theres a change so provide a count
Пожалуйста, обратитесь к предполагаемому выводу:
Предполагаемый вывод:
Count_Away Count_Home Who
0 1 Home
1 1 Away
2
3
4 2 Home
5 2 Away
6 3 Home
7 Home
8 Home
9
10 3 Away
11 4 Home