Python:根据其他列的条件用值填充 NaN

时间:2021-07-24 21:37:52

标签: python pandas dataframe

我有一个如下所示的数据框(示例)(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

预期输出:

输出函数

Output_function

第 4 周

其中我想用剩余需求的总和 (需求 - 销售) 填充 周 = 4NaN 需求值周 = 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

Output_sample_for_sample_data

0 个答案:

没有答案