首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python itertools groupby with aggregate

Python itertools groupby with aggregate
EN

Stack Overflow用户
提问于 2019-11-28 05:21:58
回答 1查看 306关注 0票数 1

我试图根据列出现的顺序(时间戳)对它进行分组,同时在小组中的其他变量上找到聚合(均值)。我可以成功地对其进行分组,但无法聚合

下面是我的示例输入:

代码语言:javascript
复制
Date        T/F X1
12/02/19    T   10
12/02/19    T   20
12/02/19    F   15
12/02/19    T   12
12/03/19    F   10
12/03/19    F   20
12/03/19    T   30
12/04/19    T   40

预期的O/P

代码语言:javascript
复制
Date        T/F X1  Count
12/02/19    T   15  2
12/02/19    F   15  1
12/02/19    T   12  1
12/03/19    F   15  2
12/03/19    T   35  2

这是我正在使用的代码,哪些组,并给我每个组的计数,我如何获得该组内X1的平均值

代码语言:javascript
复制
import itertools 
for (key,group) in itertools.groupby(df['T/F']): 
    print (key, len(list(group))) 

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-28 05:36:57

您可以使用函数groupby

代码语言:javascript
复制
df1 = df.assign(Count=np.nan).\
groupby(df['T/F'].ne(df['T/F'].shift()).cumsum(), as_index=False).\
agg({'Date': 'first', 'T/F': 'first', 'X1': 'mean', 'Count': 'size'})

print(df1)

输出:

代码语言:javascript
复制
       Date T/F  X1  Count
0  12/02/19   T  15      2
1  12/02/19   F  15      1
2  12/02/19   T  12      1
3  12/03/19   F  15      2
4  12/03/19   T  35      2
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59078615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档