我已经初始化了一个包含以下值的列表:
list = ['Umbrella', 'Umbrella'].
我也有一个4列的数据框。我想启动一个条件IF / else语句,如果列A的值在列表中,那么我希望它执行求和运算。
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]})
''''但是我尝试了以下代码,但是没有用:
if df['Product'].isin(list):
Cumulative_Spend = df.groupby('Product')['Last Price'].sum()
else:
Calibrated = df.groupby('Product')['Last Price'].sum()
如果条件满足(在初始化的列表中),我想汇总每个项目的“最后价格”的总和,如果条件不满足,那么我想获取该项目的“最后价格”值并将其存储在其他列表中称为校准。
您快到这里了,有两件事:您需要过滤而不是if,并且在第二个中需要tail而不是sum,这里是:
import pandas as pd
l = ['Umbrella', 'Umbrella']
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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句