Я пытаюсь вернуть значение count
, основанное на двух столбцах в pandas
df
.
Для df
ниже я пытаюсь определить счет на основе Column 'Event'
& Column 'Who'
.
import pandas as pd
import numpy as np
d = ({
'Event' : ['A','B','E','','C','B','B','B','B','E','C','D'],
'Space' : ['X1','X1','X2','','X3','X3','X3','X4','X3','X2','X2','X1'],
'Who' : ['Home','Home','Even','Out','Home','Away','Home','Away','Home','Even','Away','Home']
})
d = pd.DataFrame(data = d)
Я пробовал следующее.
df = d.groupby(['Event', 'Who'])['Space'].count().reset_index(name="count")
Который производит это:
Event Who count
0 Out 1
1 A Home 1
2 B Away 2
3 B Home 3
4 C Away 1
5 C Home 1
6 D Home 1
7 E Even 2
Но я бы хотел, чтобы это был текущий счет, а не общий.
Можно ли изменить df = d.groupby(['Event', 'Who'['Space'].count().reset_index(name="count")
, чтобы отфильтровать дополнительные ограничения, или это должна быть функция mask
или аналогичная?
Итак, мой предполагаемый результат:
A_Away A_Home B_Away B_Home C_Away C_Home D_Away D_Home Event Space Who
0 1 A X1 Home
1 B X1 Home
2 E X2 Even
3 Out
4 1 C X3 Home
5 1 B X3 Away
6 1 B X3 Home
7 B X4 Away
8 2 B X3 Home
9 2 E X2 Even
10 1 C X2 Away
11 1 D X1 Home
Таким образом, счет добавляется в строку. Не полный счет для всего набора данных.