python - 如何使用嵌套字典中的子列创建数据框(多索引)?

标签 python pandas dataframe dictionary nested

我尝试在一列下创建两个子列。首先,我从字典创建了一个 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 作为主列,以便 DestinationRevenue 成为它的子列。但我在索引中甚至以列表的形式得到了 DestinationRevenue

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]

目的地收入 按行显示。

如何将两者的每个值与前一个值并行写入?

future 的目标是添加Users 作为索引。因此,最终的数据帧将是 UserBooking 数据,其中 DestinationPrice 值因每个用户而异。

任何帮助将不胜感激。

最佳答案

这个问题有点困惑。如果您希望构建一个 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

关于python - 如何使用嵌套字典中的子列创建数据框(多索引)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55478281/

相关文章:

python - Pandas 计算具有列表而不是单个值的列的平均值

python - Fabric - 如何动态提供 ssh 密码

python - Spark统计函数Python

python - 相隔 >292 年的日期差值

python 数据透视表 - 列是日期,应该正确排序

Python - 数据框 - 无法删除重复项

python - 导入错误: cannot import name 'RegexpReplacer'

python - Pandas groupby : treat two columns as one

Python:在现有列中创建分类变量

python - 如何删除 pandas 数据框中特定的重复行?