我正在尝试修改一些代码以变得更加灵活。
这是woking代码:
git add
我想这样做,以便列名不是硬编码的。我得到了set_index片段,因为它只是一个字符串,但不知道如何处理该组。
这是我的部分解决方案:
df_out = pdf.set_index('TTF_WEEKS').groupby(['PRODUCT','COMMODITY_CODE','FISCAL_WEEK_ENDDATE'], group_keys=False).apply(lambda x: x.reindex(np.arange(pdf.TTF_WEEKS.min(),pdf.TTF_WEEKS.max()+1)))
我想我想要某种加入(伪代码)
col_cnt = len(list(pdf.columns.values))
df_out = pdf.set_index(pdf.columns[col_cnt-1]).groupby(['PRODUCT','COMMODITY_CODE','FISCAL_WEEK_ENDDATE'], group_keys=False).apply(lambda x: x.reindex(np.arange(pdf.TTF_WEEKS.min(),pdf.TTF_WEEKS.max()+1)))
我该怎么做?
编辑:好的,所以我靠近了,但现在收到错误:
for i in range(col_cnt-2):
join( pdf.columns[i],',')
给出错误:
KeyError:“'PRODUCT','COMMODITY_CODE','FISCAL_WEEK_ENDDATE'”
答案 0 :(得分:1)
从KeyError,我认为你正在构建一个由'PRODUCT','COMMODITY_CODE','FISCAL_WEEK_ENDDATE'
组成的字符串。你真正需要的是col_grp
包含一个字符串列表。
尝试替换
col_grp = "'" + "','".join(map(str, list(pdf.columns.values)[:col_cnt-2])) + "'"
使用
col_grp = df.columns.tolist()