python – 熊猫滚动总和与不均匀间隔索引

python – 熊猫滚动总和与不均匀间隔索引,第1张

概述我有一个数据框,其中包含不同产品的每周销售额(a,b,c).如果某一周(例如第4周)的销售额为零,则该周没有记录: In[1]df = pd.DataFrame({'product': list('aaaabbbbcccc'), 'week': [1, 2, 3, 5, 1, 2, 3, 5, 1, 2, 3, 4], 'sales': 我有一个数据框,其中包含不同产品的每周销售额(a,b,c).如果某一周(例如第4周)的销售额为零,则该周没有记录:

In[1]df = pd.DataFrame({'product': List('aaaabbbbcccc'),'week': [1,2,3,5,1,4],'sales': np.power(2,range(12))})Out[1]   product  sales  week0        a      1     11        a      2     22        a      4     33        a      8     54        b     16     15        b     32     26        b     64     37        b    128     58        c    256     19        c    512     210       c   1024     311       c   2048     4

我想创建一个新列,其中包含前n周的累计销售额,按产品分组.例如.对于n = 2,它应该像last_2_weeks:

product  sales  week  last_2_weeks0        a      1     1             01        a      2     2             12        a      4     3             33        a      8     5             44        b     16     1             05        b     32     2            166        b     64     3            487        b    128     5            648        c    256     1             09        c    512     2           25610       c   1024     3           76811       c   2048     4          1536

如果每周都有记录,我可以使用此question中描述的rolling_sum.

有没有办法将’w​​eek’设置为索引,只计算该索引的总和?或者我可以重新采样’周’并将所有缺失行的销售额设置为零?

解决方法 重新采样仅对DatetimeIndex,timedeltaIndex或Periodindex有效.
但是整数可以使用reindex.

首先将列周设置为索引.然后,df按列产品分组,并按每组索引的最大值应用reindex.缺少的值由0填充.

import pandas as pdimport numpy as npdf = pd.DataFrame({'product': List('aaaabbbbcccc'),range(12))})df = df.set_index('week')   def reindex_by_max_index_of_group(df):    index = range(1,max(df.index) + 1)    return df.reindex(index,fill_value=0)df = df.groupby('product').apply(reindex_by_max_index_of_group)df.drop(['product'],inplace=True,axis=1)print df.reset_index()#   product  week  sales#0        a     1      1#1        a     2      2#2        a     3      4#3        a     4      0#4        a     5      8#5        b     1     16#6        b     2     32#7        b     3     64#8        b     4      0#9        b     5    128#10       c     1    256#11       c     2    512#12       c     3   1024#13       c     4   2048
总结

以上是内存溢出为你收集整理的python – 熊猫滚动总和与不均匀间隔索引全部内容,希望文章能够帮你解决python – 熊猫滚动总和与不均匀间隔索引所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197430.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存