如何聚合 pandas 系列的值
How to aggregate values of pandas series
使用pandas
进行数据操作
任何人都有巧妙的方法来操纵连接的 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
我认为你可以使用 DataFrameGroupBy.cumsum
with groupby
二级:
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
使用pandas
进行数据操作任何人都有巧妙的方法来操纵连接的 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
我认为你可以使用 DataFrameGroupBy.cumsum
with groupby
二级:
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