Pandas групповой фрейм данных для повторяющихся строк - PullRequest
1 голос
/ 14 марта 2020

У меня есть следующий фрейм данных:

data = dict(t=[0, 1, 0, 1], s=[0, 31, 4, 26])
df = pd.DataFrame(data=data)

Как я могу использовать df.groupby(['t']), чтобы получить фрейм данных, который выглядит следующим образом:

t    s_0    s_1
0    0      31
1    4      26

Спасибо за любую помощь.

1 Ответ

1 голос
/ 14 марта 2020

Идея состоит в том, чтобы создать для каждой группы новую строку с GroupBy.apply, а затем изменить ее на Series.unstack с первым уровнем, затем очистить некоторые данные:

df1 = (df.groupby('t')['s']
         .apply(lambda x: pd.Series(x.to_numpy()))
         .unstack(0)
         .add_prefix('s_')
         .rename_axis(index='t', columns=None)
         .reset_index()
)
print (df1)
   t  s_0  s_1
0  0    0   31
1  1    4   26
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...