Pandas - Удалить индекс после суммирования - PullRequest
0 голосов
/ 21 февраля 2020

Я сложил серию в ряды. Показатель в моем DF показывает 0, и я хочу удалить это. Я пытался сбросить уровень 0 при сбросе индекса, но это не работает. Вот некоторая информация о моем DF:

('type of ds:', dtype('O'))
('values:', array([u'1158', u'0.000000', u'2.000000'], dtype=object))
('index:', MultiIndex(levels=[[0], [u'Clicks', u'Cost', u'Event Conversions']],
           codes=[[0, 0, 0], [0, 1, 2]],
           names=[None, u'Event Name: Glucocil - Add to Cart']))

Вот мой код:

   event3 = pd.DataFrame({
     'Event Conversions': pd.Series(microEvents),
     'Clicks': pd.Series(clicks),
     'Cost': pd.Series(costs),
     })


event3.columns.name = 'Testing'

stackEvent3 = event3.stack()
stackEvent3.name = 'values'
# stackEvent3.reset_index()
print('type of ds:', stackEvent3.dtypes)
print('values:', stackEvent3.values)
print('index:', stackEvent3.index)
writer = pd.ExcelWriter(r'events.xlsx')
stackEvent3.to_excel(writer)
writer.save()

, который в настоящее время распечатывается:

   Event Name: Testing
0  Clicks                                    1158
   Cost                                  0.000000
   Event Conversions                     2.000000

Я хотел бы получить результат быть:

Event Name: Glucocil - Add to Cart
Clicks                                    1158
Cost                                  0.000000
Event Conversions                     2.000000

1 Ответ

1 голос
/ 21 февраля 2020

Если необходимо, используйте серию Series.reset_index с drop=True для удаления первого уровня MultiIndex:

stackEvent3 = event3.stack().reset_index(level=0, drop=True)

Если необходимо 2 столбца DataFrame, добавьте еще Series.reset_index для преобразования Series в DataFrame:

stackEvent3 = event3.stack().reset_index(level=0, drop=True).reset_index(name='val')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...