Как создать Dataframe (мультииндекс) с вложенными столбцами из вложенного словаря? - PullRequest
0 голосов
/ 02 апреля 2019

Я пытался создать две подколонки под одним столбцом.Сначала я создал DataFrame из словаря

Destination = ['Milan', 'London','Lisbon','Milan','Mumbai', 'Lisbon', 'Porto', 'Lisbon']
Product_Revenue = [542,332,135,524,232, 522, 122, 122]

data_frame = {'Destination' : [i for i in Destination], 
                            'Revenue': [j for j in Product_Revenue]}
pd.DataFrame(data_frame)

Во-вторых, я хотел добавить Booking в качестве основного столбца, чтобы Destination и Revenue стали его подколонкой.Но я получил Destination и Revenue в индексе и даже в виде списка.

data_frame = {'Booking': {'Destination' : [i for i in Destination], 
                            'Revenue': [j for j in Product_Revenue]}}
pd.DataFrame(data_frame)
                             Booking

Destination    [Milan, London, Vienna, Milan, Mumbai, Paris, ...


Revenue     [542, 332, 135, 524, 232, 522, 122, 122]

Destination и Revenue отображаются в строках.

Как можно записать каждое значение обоих параллельно, как и предыдущее?

Будущая цель - добавить Users в качестве индекса.Таким образом, конечный кадр данных будет User против Booking данных, где значения Destination и Price будут отличаться для каждого пользователя.

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 02 апреля 2019

Вопрос немного сбивает с толку.Если вы хотите построить DF с многоиндексными столбцами, где первый уровень - «Бронирование», а второй - [Назначение, Доход], ключи должны быть определены как кортежи:

Destination = ['Milan', 'London','Lisbon','Milan','Mumbai', 'Lisbon', 'Porto', 'Lisbon']
Product_Revenue = [542,332,135,524,232, 522, 122, 122]

data_frame = {('Booking', 'Destination') : Destination, 
              ('Booking', 'Revenue'): Product_Revenue}

pd.DataFrame(data_frame)

Вывод:

Booking
Destination Revenue
0   Milan   542
1   London  332
2   Lisbon  135
3   Milan   524
4   Mumbai  232
5   Lisbon  522
6   Porto   122
7   Lisbon  122
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...