如何聚合熊猫系列的值

Posted

技术标签:

【中文标题】如何聚合熊猫系列的值【英文标题】:How to aggregate values of pandas series 【发布时间】:2017-01-14 14:07:31 【问题描述】:

使用 pandas 进行数据操作

任何人有聪明的方法来操纵串联的熊猫系列的值来找到总计数?


当前数据(类型:pandas.core.series.Series) 仅供参考,此数据是使用原始数据中的 'groupby' 函数生成的。

date          device        
2015-07-08    a         0        
              b         0        
              c         0        
              d         1        
2015-07-09    a         0        
              c         1         
              d         1        
2015-07-10    a         1        
              b         1        
              c         1        

预期结果(类型:pandas.core.series.Series) 每个设备的值表示截至日期 A 的总计数。 例如,total(2015-07-10, c) = 2 因为 (2015-07-09, c) = 1 和 (2015-07-10, c) = 1

date          device    
2015-07-08    a         0
              b         0
              c         0
              d         1
2015-07-09    a         0
              c         1 
              d         2
2015-07-10    a         1
              b         1
              c         2

【问题讨论】:

【参考方案1】:

我认为您可以在第二级使用DataFrameGroupBy.cumsumgroupby

dates = pd.DatetimeIndex(['2015-07-08','2015-07-08','2015-07-08','2015-07-08',
                          '2015-07-09','2015-07-09','2015-07-09',
                          '2015-07-10','2015-07-10','2015-07-10'])
devices = ['a','b','c','d','a','c','d','a','b','c']
idx = pd.MultiIndex.from_tuples(list(zip(dates, devices)), names=['date', 'device'])
s = pd.Series([0,0,0,1,0,1,1,1,1,1], index= idx)
print (s)
date        device
2015-07-08  a         0
            b         0
            c         0
            d         1
2015-07-09  a         0
            c         1
            d         1
2015-07-10  a         1
            b         1
            c         1
dtype: int64

print (s.groupby(level=1).cumsum())
date        device
2015-07-08  a         0
            b         0
            c         0
            d         1
2015-07-09  a         0
            c         1
            d         2
2015-07-10  a         1
            b         1
            c         2
dtype: int64

【讨论】:

我以前不知道cumsum()。非常感谢!这正是我想要的。

以上是关于如何聚合熊猫系列的值的主要内容,如果未能解决你的问题,请参考以下文章

如何从表中选择熊猫系列中的值?

如何检索熊猫系列对象中第 n 个元素的值?

如何将熊猫系列转换为所需的 JSON 格式?

如何根据另一个拆分熊猫系列

如何使用一系列列名从熊猫数据框中获取系列?

如何按天聚合熊猫数据框