如何从组更改表中查找组成员和组成员

时间:2017-03-14 19:51:34

标签: python pandas

我在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)

从这两个表构建的最合适的数据结构是什么,最容易在这两个方向上进行查询?

1 个答案:

答案 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]