遍历第一分组级别以获取第二级数据帧

时间:2019-05-25 22:19:42

标签: python pandas pandas-groupby

我已经将数据框按用户和月份两列进行分组,然后使用mean()来获取每个月“得分”值的平均值。我现在想做的是按用户遍历该组,并能够获取每个月的月份和平均得分,以便我可以使用matplotlib绘制它们。问题是,当我遍历该组时,我要为每个用户浏览一个月,而不是仅遍历第一个(用户)组。请让我知道这是怎么可能的,谢谢。

这是我到目前为止所拥有的:

user_group = past_year.groupby(['User','month'])['Score'].mean()
for group in user_group:
    #I want to be able to access all months and mean scores for the current user here

1 个答案:

答案 0 :(得分:0)

如果我了解您要正确执行的操作,则可以使用像这样的多层次索引-但这很麻烦:

import pandas as pd 
df = pd.DataFrame({"User" : ["User1", "User1", "User1", "User1", "User1", "User1"], "Month" : ["Jan", "Jan", "Jan", "Feb", "Feb", "Feb"], "Score" : [5,10,30,30,30,40]})

users = df.User.unique()
months = df.Month.unique()

df =df.set_index(["User", "Month"])

for i in users:
    for x in months:
        print(df.loc[i].loc[x].Score.mean())

然后根据您要对最终结果执行的操作来更改打印语句。