从熊猫数据框创建列表字典


问题内容

我正在尝试基于pandas数据框创建列表字典,我需要为Plotly仪表板传递列表字典

In:
df.head()
Model    Make
Ford     F-150
Ford     Escape
Ford     Mustang
Jeep     Grand Cherokee
Jeep     Wrangler

df.to_dict()通过列标题找到了方向,但是我需要根据相邻的行值进行方向。这样做的唯一方法是按Model将数据框重塑为具有其各自品牌的列吗?

Out:
makes_by_model= {
    'Ford': ['F-150', 'Escape', 'Mustang'],
    'Jeep': ['Wrangler', 'Grand Cherokee']
}

问题答案:

您可以groupby汇总到列表,rec.array使用to_records并返回并根据结果构造字典:

dict(df.groupby('Model').agg(list).to_records())
# {'Ford': ['F-150', 'Escape', 'Mustang'], 'Jeep': ['Grand Cherokee', 'Wrangler']}