Получение всех столбцов Dataframe после использования метода groupby - PullRequest
0 голосов
/ 19 апреля 2019

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

У меня есть образец Dataframe, как показано ниже.

  col1 col2        day col4
0   a1   b1     monday   c1
1   a2   b2    tuesday   c2
2   a3   b3  wednesday   c3
3   a1   b1     monday   c5

Здесь 'a1 b1 monday' повторяетсядважды.Таким образом, после группового вывода должно быть:

col1    col2          day     col4  count
a1        b1       monday      c1     2
a2        b2      tuesday      c2     1
a3        b3    wednesday      c3     1

Я пытался использовать df.groupby(['col1','day'],sort=False).size().reset_index(name='Count')

и

df.groupby(['col1','day']).transform('count')

, а вывод всегда

col1    day         count
a1  monday        2
a2  tuesday       1
a3  wednesday     1

где мои исходные данные содержат 14 столбцов, и не имеет смысла хранить все имена столбцов в выражении groupby.Есть ли лучший питонный способ добиться этого ??

1 Ответ

0 голосов
/ 19 апреля 2019

Сначала groupby с transform, чтобы создать столбец count.

Затем используйте drop_duplicates для удаления повторяющихся строк:

df['count'] = df.groupby(['col1','day'],sort=False)['col1'].transform('size')
df.drop_duplicates(['col1', 'day'], inplace=True)

print(df)
  col1 col2        day col4  count
0   a1   b1     monday   c1      2
1   a2   b2    tuesday   c2      1
2   a3   b3  wednesday   c3      1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...