столбцы исчезают после группового в pandas - PullRequest
0 голосов
/ 28 января 2020

У меня есть следующее df:

data0 = {
    'state':  ['CA', 'CA', 'OH'],
    'year':   [2012, 2014, 2010],
    's': [2000, 4000, 5000]
     }
data1=pd.DataFrame(data0)

Когда я делаю счет:

data2=data1.groupby(['state'])['s'].agg({'result': 'count'})

Я получаю правильные результаты и могу отображать и «состояние» и «результат» , Но столбец состояния исчезает. Поэтому, если я запускаю:

data2.columns

Возвращает:

Index(['result'], dtype='object')

Также происходит сбой, если я пытаюсь соединить data2 с другим df в столбце состояния, потому что состояние не найдено в data2.

Не понимаю, почему это происходит!

1 Ответ

1 голос
/ 28 января 2020

Хотя data2.columns показывает, что столбец state отсутствует, столбец state будет фактически включен в кадр данных как индекс кадра данных.

data2=data1.groupby(['state'])['s'].agg({'result': 'count'})
data2
      result
state   
CA        2
OH        1

[РЕДАКТИРОВАТЬ] Благодаря @ sammywemmy

Чтобы сделать столбец state в столбце вместо индекса для объединения по столбцам, вы можете просто:

data2=data1.groupby(['state'], as_index=False)['s'].agg({'result': 'count'})
data2
    state   result
0      CA       2
1      OH       1
...