汇总 pandas 数据框中的行?

Roll up rows in pandas data frame?

抱歉,如果这是一个重复的问题,但我一直在努力寻找一个现有线程,其中包含适用于我的问题的解决方案。

我正在使用看起来像这样的数据集

df = pd.DataFrame(data={"product":["crisps", "crisps", "crisps",
                                   "bread", "bread", "bread",
                                   "pasta","pasta"], 
                   "ingredients": ["potato", "oil", "salt", 
                                   "flour", "salt", "water", 
                                   "flour", "eggs"]})

原始数据集格式:

但我需要这种格式的数据集

汇总数据集:

我知道这可以使用 SQL 查询来完成,但是在 python/pandas 中有没有办法做到这一点?我正在使用的实际数据集包含超过 100,000 种不同的食品,因此解决方案需要可扩展。

非常感谢任何建议!

尝试:

df.groupby('product', as_index=False)[['ingredients']].agg(list)

输出:

  product           ingredients
0   bread  [flour, salt, water]
1  crisps   [potato, oil, salt]
2   pasta         [flour, eggs]