汇总 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]
抱歉,如果这是一个重复的问题,但我一直在努力寻找一个现有线程,其中包含适用于我的问题的解决方案。
我正在使用看起来像这样的数据集
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]