我有一个如下所示的数据框(示例)(8K 行和 1.6K 卖家)
# initialise data of sells.
data = {
'name': ['Tom', 'Tom', 'Tom', 'Tom', 'Tom', 'jack', 'jack', 'jack', 'jack',
'jack', 'Malik'],
'week': [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1],
'sell': [20, 21, 19, 18, 23, 24, 36, 35, 46, 50, 44],
}
# Create DataFrame
df = pd.DataFrame(data)
# Print the output.
df
######
# initialise data of demand.
data1 = {'name': ['Tom', 'Tom', 'Tom', 'jack', 'jack', 'jack', 'jack', 'Malik'],
'week': [1, 2, 3, 1, 2, 3, 4, 1],
'demand': [28, 16, 43, 30, 35, 35, 72, 60]
}
# Create DataFrame
df1 = pd.DataFrame(data1)
# Print the output.
df1
######
df2 = pd.merge(df, df1, on=['name', 'week'], how='outer')
df2['demand-sell'] = df2['demand'] - df2['sell']
df2
df2
:
name week sell demand demand-sell
0 Tom 1 20 28.0 8.0
1 Tom 2 21 16.0 -5.0
2 Tom 3 19 43.0 24.0
3 Tom 4 18 NaN NaN
4 Tom 5 23 NaN NaN
5 jack 1 24 30.0 6.0
6 jack 2 36 35.0 -1.0
7 jack 3 35 35.0 0.0
8 jack 4 46 72.0 26.0
9 jack 5 50 NaN NaN
10 Malik 1 44 60.0 16.0
预期输出:
输出函数
第 4 周
其中我想用剩余需求的总和 (需求 - 销售) 填充 周 = 4 的 NaN 需求值周 = 1,2,3 相同的卖家(姓名)
注意:
如果周=4 的需求不是 NaN,则在周 = 1,2,3 的(需求 - 销售)中添加周=4 的需求
{ex. 如果 name = jack }
第 5 周
其中我想填充 NaN 周 = 5 的需求值与周的剩余需求总和(需求 - 销售)= 1,2,3,4 相同的卖家(姓名)< /p>
注意:
如果第 5 周的需求不是 NaN,则在第 = 1、2、3、4 周的(需求 - 销售)中添加第 5 周的需求
Output_sample_for_sample_data