Python - выбрать ячейку строки на основе другого условия ячейки - PullRequest
0 голосов
/ 18 декабря 2018

Я пишу какой-нибудь Python для рисования круговой диаграммы.Я пытаюсь найти, сколько голов было забито, используя определенную форму.Формат каждой строки:

date        home_team      away_team home_score away_score  home_formation  away_formation
14/06/2018  Russia      Saudi Arabia         5           0         4-2-3-1         4-1-4-1

Что бы я хотел сказать, если у домашней команды есть формация 4-2-3-1, добавьте home_score к счетчику.В конце я выведу эти цели на круговую диаграмму

for x in df:
if df.home_formation == '4-1-4-1':
    counter += df.home_score

formationScore1 = counter 

Мой вопрос: как пройти через файл CSV, проверить, является ли формация той, которую я хочу, и добавить эти строки в переменную

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Pandas изначально поддерживает групповые операции.Например, используя groupby:

scores_by_formation = df.groupby('home_formation')['home_score'].sum()

Если вам требуются оценки только для определенных группировок, вы можете сначала отфильтровать свой фрейм данных:

L = ['4-1-4-1', '4-2-3-1']

scores_by_specific_formations = df.loc[df['home_formation'].isin(L)]\
                                  .groupby('home_formation')['home_score'].sum()

Используя эти операции, вы получаете преимуществовекторизованной функциональности NumPy и избегая явного цикла уровня Python.

0 голосов
/ 18 декабря 2018
formations = ['4-1-4-1', '4-2-3-1']  #Add as many as you'd like

formation_scores = {formation: df[df['home_formation'] == formation]['home_score'].sum() for formation in formations}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...