Добавление столбца в мультииндексированном фрейме данных - PullRequest
0 голосов
/ 01 октября 2019

У меня есть мультииндексированный фрейм данных, где самый левый индекс - NBA Player, а индекс второго уровня - NBA Season (то есть 2018-19). Я хотел бы добавить столбец, который нумерует каждый сезон игроков. Например, в начале приведенного ниже графика я хотел бы добавить столбец рядом с сезоном, в котором сезон 2000-01 AJ Guyton обозначен как «1», а его сезон 2001-02 - «2». Затем этот процесс будет повторяться для следующего игрока на всем фрейме данных.

                     Age   Tm  OBPM  BPM  DBPM
Player      Season                            
A.J. Guyton 2000-01   22  CHI -0.57 -2.8  -2.1
            2001-02   23  CHI -0.80 -3.4  -2.4
A.J. Price  2009-10   23  IND -0.75 -2.2  -1.1
            2010-11   24  IND -1.51 -3.1  -1.0
            2011-12   25  IND -0.35 -2.2  -1.4

Я новичок в пандах и относительно новичок в Python, так что это, вероятно, простой вопрос, но я не уверен, какдаже подходите к этому, так как год начала у каждого игрока разный.

Ответы [ 2 ]

1 голос
/ 01 октября 2019

Вы можете использовать шаблон разделения / применения / объединения с групповым и cumcount . Cumcount действует как преобразование , которое возвращает ряд с тем же индексом, что и исходный кадр данных, в отличие от агрегации (например, среднего), которая возвращает одно значение для каждой группы.

df['career_year'] = df.groupby(level='Player').cumcount()

С вашими данными это даст

                     Age   Tm  OBPM  BPM  DBPM  career_year
Player      Season                                         
A.J. Guyton 2000-01   22  CHI -0.57 -2.8  -2.1            0
            2001-02   23  CHI -0.80 -3.4  -2.4            1
A.J. Price  2009-10   23  IND -0.75 -2.2  -1.1            0
            2010-11   24  IND -1.51 -3.1  -1.0            1
            2011-12   25  IND -0.35 -2.2  -1.4            2
0 голосов
/ 01 октября 2019

вы должны включить код для того, как сгенерировать ваши образцы данных. Облегчает помощь другим.

dataframe['Season'] = 2

создаст новый столбец «Сезон» и заполнит его значением 2.

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