我想根据前一周的销售额创建另一个专栏。以下是示例输入:
df = pd.DataFrame({'Week':[1,1,2,2,3,3,4,4,5,5,1,1,2,2,3,3,4,4,5,5],
'Category':['Red','White','Red','White','Red','White','Red','White','Red','White','Red','White','Red','White','Red','White','Red','White','Red','White'],
'id':[1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2],
'Sales':[100,200,300,400,100,200,300,400,100,200,100,200,300,400,100,200,300,400,100,200],
'Sales_others':[10,20,30,40,10,20,30,40,10,20,10,20,30,40,10,20,30,40,10,20]})
print(df)
基于此,我想创建另一个专栏,它只不过是前一周的销售额。下面是所需输出的示例
df_output = pd.DataFrame({'Week':[1,1,2,2,3,3,4,4,5,5,1,1,2,2,3,3,4,4,5,5],
'Category':['Red','White','Red','White','Red','White','Red','White','Red','White','Red','White','Red','White','Red','White','Red','White','Red','White'],
'id':[1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2],
'Sales':[100,200,300,400,100,200,300,400,100,200,100,200,300,400,100,200,300,400,100,200],
'Sales_others':[10,20,30,40,10,20,30,40,10,20,10,20,30,40,10,20,30,40,10,20],
'Sales_previous_week':[0,0,100,200,300,400,100,200,300,400,0,0,100,200,300,400,100,200,300,400]})
print(df_output)
我发现很难创建一个自我连接。前一周应该只受销售文件的影响,我应该能够保留“sales_others”列
--编辑 添加原始代码
CR_UK_NL_Weeklevel['PREVIOUS_WEEK'] = CR_UK_NL_Weeklevel.groupby(['RETAIL_SITE_ID','CATEGORY_NAME'])['CURRENT_WEEK'].shift(fill_value=0)
print(CR_UK_NL_Weeklevel)
重命名列
CR_UK_NL_Weeklevel.columns.values[4] = 'CURRENT_WEEK'
CR_UK_NL_Weeklevel.columns.values[3] = 'LAST_YEAR_WEEK'
CR_UK_NL_Weeklevel.columns.values
正在尝试实施解决方案:
CR_UK_NL_Weeklevel['PREVIOUS_WEEK'] = CR_UK_NL_Weeklevel.groupby(['RETAIL_SITE_ID','CATEGORY_NAME'])['CURRENT_WEEK'].shift(fill_value=0)
print(CR_UK_NL_Weeklevel)
[78]:
CR_UK_NL_Weeklevel['PREVIOUS_WEEK'] = CR_UK_NL_Weeklevel.groupby(['RETAIL_SITE_ID','CATEGORY_NAME'])['CURRENT_WEEK'].shift(fill_value=0)
print(CR_UK_NL_Weeklevel)
--错误
--------------------------------------------------------------------------- KeyError回溯(最近一次呼叫最后一次) 在里面 ----&燃气轮机;1 CR_UK_NL_Weeklevel[‘上一周’]=CR_UK_NL_Weeklevel.groupby([‘零售网站ID’、‘类别名称’)[‘当前周’)。班次(填充值=0) 2份印刷品(CR_UK_NL_Weeklevel) getitem中的~\AppData\Local\Continuum\anaconda3\lib\site packages\pandas\core\base.py(self,key) 273其他: 274如果钥匙不在self.obj中: --&燃气轮机;275 raise KeyError(“未找到列:{key}”。格式(key=key)) 276返回自项目(键,ndim=1) 277 KeyError:“未找到列:当前_周”
如果每周和连续几周总是有相同的类别,请使用^{} 按
Category
列分组:旋转的另一个想法是使用^{} ,然后使用^{} 和^{} 表示} 添加新列:
Series
,最后通过^{编辑:
使用新数据添加列
id
:对于第二种解决方案:
编辑:
列名称存在问题,请使用:
相关问题 更多 >
编程相关推荐