我在面试测试中遇到了以下数据清理问题,我一直在努力解决(我已经更改了细节以使其匿名并保护公司的面试流程)
给定以下数据框
df,返回一个以索引为索引的新系列,以及一个包含当天吃饭的每个人(即第 1 天和第 3 天的Alice 和 Bob,但只有第 2 天的 Alice)day所消耗的一组膳食的单列. 不要使用 for 循环或列表推导,仅使用方法链接和仅接受单个参数的单个 lambda 函数。
df = pd.DataFrame({'day':[1, 2, 3, 1, 3]*3,
'person':['Alice', 'Alice', 'Alice', 'Bob', 'Bob']*3,
'meal':['breakfast', 'breakfast', 'breakfast', 'breakfast', 'breakfast']+
['lunch', 'brunch', 'brunch', 'lunch', 'lunch']+
['dessert', 'dinner', 'snack', 'beer', 'dessert']
})
换句话说,目标是获得以下数据帧:
goal = pd.DataFrame({'day':[1, 2, 3],
'meal':[{'breakfast', 'lunch'},
{'breakfast', 'brunch', 'dinner'},
{'breakfast'}]
}).set_index('day')
有谁知道如何做到这一点?谢谢!

