计算lis中不存在值的列的总和

2024-04-20 08:14:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经初始化了一个包含以下值的列表: l = ['Umbrella', 'Umbrella'].

我还有一个4列的数据框。我想在我的循环中启动一个条件IF/else语句(它在目录中拾取200个每日文件),如果列中有一个值,那么我希望它执行求和操作—如果它不在列表中,则也执行求和,但将其保存在另一个变量中

我的数据帧如下:

df = pd.DataFrame({'Date':['10/2/2011', '11/2/2011', '12/2/2011', '13/2/2011'], 
               'Product':['Umbrella', 'Umbrella', 'Badminton', 'Shuttle'], 
               'Last Price':[1200, 1500, 1600, 352], 
               'Updated Price':[1250, 1450, 1550, 400], 
               'Discount':[10, 10, 10, 10]}) 

当执行以下代码时,似乎对第一个文件有效(值对应于“手动”执行的计算)-当循环运行并计算其他天时,操作无法正确计算“校准”变量

Cumulative_Spend = df[df['Product'].isin(l)].groupby('Product')['Last Price'].sum() 
Calibrated = df[~df['Product'].isin(l)].groupby('Product')['Last Price'].tail(1)

如果有人能提供一些指导,说明为什么在循环校准计算时校准变量计算不正确


Tags: 文件数据df列表if语句product条件