Панды - суммировать каждого члена пары в столбце - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть датафрейм, который выглядит следующим образом:

eventScore
5-4 
6-2 6-0
6-2 6-3
7-6 6-2
2-6 4-6
1-6 1-3 

Слева от каждой пары - оценка игрока, справа от каждой пары - рейтинг Связаться с конкурентом.

Так для каждого столбцаМне нужно добавить слева от тире и справа от тире.

Конечный вывод:

eventScore     playerScore   opponentScore
5-4            5             4
6-2 6-0        12            2  
6-2 6-3        12            5
7-6 6-2        13            8
2-6 4-6        6             12
1-6 1-3        2             9

Данные могут быть переформатированы по мере необходимости.

Редактировать: Оригинальный вопрос содержал лишние строки в партитуре, облегчая чтение.

1 Ответ

0 голосов
/ 19 сентября 2018

Не особенно элегантно, но это работает, используя регулярные выражения для поиска цифр до и после -:

df['playerScore'] = df.eventScore.str.findall('(\d+)-').apply(pd.Series, dtype=float).sum(1)
df['opponentScore'] = df.eventScore.str.findall('-(\d+)').apply(pd.Series, dtype=float).sum(1)

>>> df
  eventScore  playerScore  opponentScore
0        5-4          5.0            4.0
1    6-2 6-0         12.0            2.0
2    6-2 6-3         12.0            5.0
3    7-6 6-2         13.0            8.0
4    2-6 4-6          6.0           12.0
5    1-6 1-3          2.0            9.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...