我有一个广泛的时间序列日期框架,其中日期作为标题,一列中包含日期。我一直在尝试根据WIP列中的日期,将QTYs列添加到标题中的匹配日期和前两个列中,
。您的反馈或有关如何实现此目标的建议将得到
的赞赏。
我尝试使用日期作为列从QTY和WIP创建数据透视表,然后
按页眉分组,但没有成功。
dict = {'SKU':['a1','a2', 'a3', 'b1', 'b2', 'b3'],
'4/12/2020':[-5,-18,-25,7,20,0],
'4/19/2020':[-10,0,-20,15,10,-5],
'4/26/2020':[-15,25,-28,20,30,2],
'5/03/2020':[2,-5,-30,-5,40,5],
'WIP':['4/12/2020','4/19/2020','4/26/2020','5/03/2020','5/03/2020','4/19/2020'],
'QTY':[10,0,20,100,5,40]}
df = pd.DataFrame(dict)
df
SKU 4/12/2020 4/19/2020 4/26/2020 5/03/2020 WIP QTY
a1 -5 -10 -15 2 4/12/2020 10
a2 -18 0 25 -5 4/19/2020 0
a3 -25 -20 -28 -30 4/26/2020 20
b1 7 15 20 -5 5/03/2020 100
b2 20 10 30 40 5/03/2020 5
b3 0 -5 2 5 4/19/2020 40
SKU 4/12/2020 4/19/2020 4/26/2020 5/03/2020 WIP QTY
a1 5 -10 -15 2 4/12/2020 10
a2 -18 0 25 -5 4/19/2020 0
a3 -5 0 -8 -30 4/26/2020 20
b1 7 115 120 95 5/03/2020 100
b2 20 15 35 45 5/03/2020 5
b3 40 35 2 5 4/19/2020 40
例如,
SKU 4/12/2020 4/19/2020 4/26/2020 5/03/2020 WIP QTY
a3 -25+20 -20+20 -28+20 -30 4/26/2020 20
b1 7 15+100 20+100 -5+100 5/03/2020 100
b3 0+40 -5+40 2 5 4/19/2020 40
答案 0 :(得分:0)
尝试一下,似乎得到正确的输出。
import pandas as pd
dict = {'SKU':['a1','a2', 'a3', 'b1', 'b2', 'b3'],
'4/12/2020':[-5,-18,-25,7,20,0],
'4/19/2020':[-10,0,-20,15,10,-5],
'4/26/2020':[-15,25,-28,20,30,2],
'5/03/2020':[2,-5,-30,-5,40,5],
'WIP':['4/12/2020','4/19/2020','4/26/2020','5/03/2020','5/03/2020','4/19/2020'],
'QTY':[10,0,20,100,5,40]}
df = pd.DataFrame(dict)
print(df)
for i, row in df.iterrows():
for col in df.columns[1:-2]:
if pd.Timestamp(row['WIP']) >= pd.Timestamp(col):
df.at[i, col] += row['QTY']
print(df)