我在python中有关于几个人(人1,2,3,4,5)和几个组(组A,B,C)的数据。我有个人和团体的初始状态(time == 0
)的表(目前作为熊猫数据帧):
Person | Group
-------|-------
1 | A
2 | A
3 | C
4 | B
5 | B
人们改变群体的桌子(也是熊猫DF)。该表包括此人,他们的新组以及更改的时间。
Person | New Group | Time
-------|-----------|------
1 | B | 10
1 | A | 12
3 | A | 13
4 | C | 13
1 | C | 22
5 | A | 30
我需要编写一个可以在给定时间返回组中人员列表的函数
people = people_in_group(group, time) # type(people) == list
和一个可以返回一个人在给定时间内进入的组的功能
group = group_member(person, time)
从这两个表构建的最合适的数据结构是什么,最容易在这两个方向上进行查询?
答案 0 :(得分:0)
您当前的df具有唯一的时间,因此组中的每个人员列表都会有一个人
给定具有重复时间值的数据帧:
Person New Time
1 1 B 10
2 1 A 12
3 3 A 12
4 4 C 13
5 1 C 22
6 5 A 30
df.groupby(['New', 'Time']).Person.apply(list)
给出
New Time
A 12 [1, 3]
30 [5]
B 10 [1]
C 13 [4]
22 [1]