【发布时间】:2019-12-11 10:16:33
【问题描述】:
我不知道如何命名。
假设以下 Pandas DataFrame:
Student ID Class
1 John 99124 Biology
2 John 99124 History
3 John 99124 Geometry
4 Sarah 74323 Physics
5 Sarah 74323 Geography
6 Sarah 74323 Algebra
7 Alex 80045 Trigonometry
8 Alex 80045 Economics
9 Alex 80045 French
我想通过创建每个学生正在学习的课程列表来减少此 DataFrame 中的行数,然后将其放入“课程”列。这是我想要的输出:
Student ID Class
1 John 99124 ["Biology","History","Geometry"]
2 Sarah 74323 ["Physics","Geography","Algebra"]
3 Alex 80045 ["Trigonometry","Economics","French"]
我正在使用一个大型 DataFrame,它的组织不如这个例子好。任何帮助表示赞赏。
【问题讨论】:
-
我不确定列表是否真的是理想的解决方案。将对象存储在 DataFrame 中只会为将来的大多数操作造成障碍。例如,检查哪些学生参加了
Biology不再是微不足道的事情,或者至少在没有性能低得多的方法的情况下并非如此。 -
@ALollz 你推荐另一种方法吗?
-
这取决于你最终需要什么样的操作。具有每行都是唯一键的长格式(如上所示)可能很有用并且很灵活。
pivot不难,或者从那里得到假人,这可能更适合其他事情。