Python 分组依据并获取数据帧中每个组的详细信息

Python 分组依据并获取数据帧中每个组的详细信息,python,sql,pandas,dataframe,Python,Sql,Pandas,Dataframe,我有一张这样的桌子: user week message col2 ---- ----- ---- ---- A 1 Hi 30 A 1 Hello 30 A 2 To 30 A 2 From 40 B 1 call 30 B 1 should 20

我有一张这样的桌子:

   user   week  message  col2
   ----  -----  ----     ----
     A     1     Hi       30
     A     1     Hello    30
     A     2     To       30
     A     2     From     40
     B     1     call     30
     B     1     should   20
     B     2     sadas    50
我需要先按用户分组,然后按周分组并处理一些数据

例:

需要在Pandas中执行类似的操作,在将其加载到数据帧后,我按用户和周对数据进行分组,但我不知道如何在分组后访问数据

还有,一旦我们对数据进行分组,用户如何访问数据


非常感谢您的帮助

您可以使用
groupby.apply
模式;通常,
apply
接受一个函数,并将分组数据帧的每组数据作为参数;在这种情况下,如果您只关心
消息
,请使用
[]
提取列,并对每个用户的消息应用
列表
功能,该功能将为用户提供相应周的消息列表:

df.groupby(['user', 'week'])['message'].apply(list)

#user  week
#A     1          [Hi, Hello]
#      2           [To, From]
#B     1       [call, should]
#      2              [sadas]
#Name: message, dtype: object

您可以使用
groupby.apply
模式;通常,
apply
接受一个函数,并将分组数据帧的每组数据作为参数;在这种情况下,如果您只关心
消息
,请使用
[]
提取列,并对每个用户的消息应用
列表
功能,该功能将为用户提供相应周的消息列表:

df.groupby(['user', 'week'])['message'].apply(list)

#user  week
#A     1          [Hi, Hello]
#      2           [To, From]
#B     1       [call, should]
#      2              [sadas]
#Name: message, dtype: object

太好了,谢谢。等待5分钟,以便我能将其标记为正确。是否知道如何进行分组。获取组['col\u name',并将值作为列表?非常好,谢谢。等待5分钟,以便我能标记正确。有没有关于如何进行分组的想法。get_group['col_name']并将值作为列表获取?有没有办法在group.get_group?group.get_group('a',1)).message.tolist()哇,太棒了。花了一个多小时才弄明白。谢谢你有没有办法在group.get_group?group.get_group('a',1)).message.tolist()哇,太棒了。花了一个多小时才弄明白。非常感谢。
#create your group
group = df.groupby(by=['user','week'])

#print all the groups and values
for k,v in group:
    print(k)
    print(v)
#get a group by the group key (user,week)    
group.get_group(('A', 1))   
Out[134]: 
  user  week message  col2
0    A     1      Hi    30
1    A     1   Hello    30