Как посчитать частоты из вложенного списка, который является столбцом в df? - PullRequest
0 голосов
/ 08 февраля 2020

Я хочу подсчитать вхождения элемента во вложенные списки. Текущая структура Pandas DF; каждая запись была сгруппирована по match_id и Properion_id, а затем передала значения second, action_name, player_name в список с именем action_seq.

Я могу подсчитать общее количество событий в каждом владении без проблем, но теперь я хочу иметь возможность сосчитать, сколько раз, например, игрок А участвовал в событиях? В каких событиях они происходили чаще?

#sample df
pass_goal = pd.DataFrame({'match_id': [1107073,1107073,1107073,1409630,1409630], 
'possession_number': [2,2,2,40,40], 'second': [10,15,20,250,260], 
'action_name': ['pass', 'pass', 'goal','pass','goal'], 
'player_name': ['a','b','c','a','b']})

#grouping by match and possession then adding a list
posses = pass_goal.groupby(['match_id','possession_number'])[['second', 'action_name','player_name']].apply(lambda action: action.values.tolist()).reset_index(name='action_seq') 

Предпочитаемый результат

Player A B C
Pass   2 1 0
Goal   0 1 1

1 Ответ

0 голосов
/ 09 февраля 2020

Вы можете попробовать:

(pass_goal[["action_name","player_name"]]
 .pivot_table(columns="player_name", index="action_name", aggfunc=len, fill_value=0)
 .rename_axis(index="", columns="player"))

player       a  b  c

goal         0  1  1
pass         2  1  0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...