Развернуть опрос по весу - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь расширить опрос по его весу по году и идентификатору, чтобы выполнить некоторые регрессии.Я хочу, чтобы следующий фрейм данных

df 
id    year   weight    X       Y
 1    2011        2   54  Medium
 1    2012        1   57  Medium
 2    2011        1    8   Micro
 2    2012        2   10   Micro
 3    2011        3   10   Micro
 1    2012        1    9   Micro

преобразовал его во что-то вроде этого (пример только для примера, чтобы проиллюстрировать мою проблему, мой реальный набор данных имеет много идентификаторов и функций)

id    year   weight    X       Y
 1    2011        2   54  Medium
 1    2011        2   54  Medium
 1    2012        1   57  Medium
 2    2011        1    8   Micro
 2    2012        2   10   Micro
 2    2012        2   10   Micro
 3    2011        3   10   Micro
 3    2011        3   10   Micro
 3    2011        3   10   Micro
 1    2012        1    9   Micro

1 Ответ

0 голосов
/ 23 мая 2018

Один из способов - использовать pd.Series.repeat:

res = df.set_index(['id', 'year', 'X', 'Y'])['weight']\
        .repeat(df['weight'])\
        .reset_index()

print(res)

   id  year   X       Y  weight
0   1  2011  54  Medium       2
1   1  2011  54  Medium       2
2   1  2012  57  Medium       1
3   2  2011   8   Micro       1
4   2  2012  10   Micro       2
5   2  2012  10   Micro       2
6   3  2011  10   Micro       3
7   3  2011  10   Micro       3
8   3  2011  10   Micro       3
9   1  2012   9   Micro       1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...