首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Pandas TimeGrouper时列上应用函数的变化

使用Pandas TimeGrouper时列上应用函数的变化
EN

Stack Overflow用户
提问于 2017-06-26 08:23:32
回答 1查看 38关注 0票数 0

我有一个非常大的时间序列数据集,我想在close_p上做一个count(),但在prd_vlm上做一个sum()。

代码语言:javascript
复制
                      open_p   high_p    low_p  close_p  tot_vlm  prd_vlm
datetime                                                                 
2005-09-06 16:33:00  1234.25  1234.50  1234.25  1234.25      776       98
2005-09-06 16:34:00  1234.50  1234.75  1234.25  1234.50     1199      423
2005-09-06 16:35:00  1234.50  1234.50  1234.25  1234.50     1330      131
...
2017-06-25 18:41:00  2431.75  2432.00  2431.75  2432.00     5436      189
2017-06-25 18:42:00  2431.75  2432.25  2431.75  2432.25     5654      218
2017-06-25 18:43:00  2432.25  2432.75  2432.25  2432.75     5877      223
2017-06-25 18:44:00  2432.75  2432.75  2432.50  2432.75     5894       17
2017-06-25 18:45:00  2432.50  2432.50  2432.25  2432.25     6098      204

我可以使用以下代码来实现这一点。但是我想知道是否有更好的方法使用应用函数来实现这一点。

代码语言:javascript
复制
group_count = df['close_p'].groupby(pd.TimeGrouper('D')).count()
group_volume = df['prd_vlm'].groupby(pd.TimeGrouper('D')).sum()
grouped = pd.concat([group_count,group_volume], axis=1)
print(grouped)

            close_p    prd_vlm
datetime                      
2005-09-06      232     4776.0
2005-09-07     1039   631548.0
2005-09-08      999   544112.0
2005-09-09      810   595044.0
EN

回答 1

Stack Overflow用户

发布于 2017-06-26 08:28:51

您可以使用agg并将不同的函数应用于不同的列。

代码语言:javascript
复制
df.groupby(pd.TimeGrouper('D')).agg({'close_p':'count','prd_vlm':'sum'})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44751769

复制
相关文章

相似问题

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