Python 根据条件指定值
我有一个数据库,用于跟踪建筑公司的服务和安装收入。我试图跟踪技术人员的营业额,其中技术人员为销售人员创造了领先优势,并跟踪销售收入。在本例中,从数据库中提取,Justin是创建lead的技术人员;肖恩就是那个去拜访电话的推销员,在这种情况下,他把电话卖掉了;最后,Victor是安装该作业的人。所有销售人员的总数都为0,因为公司在安装完成之前不会收集。如果Python 根据条件指定值,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个数据库,用于跟踪建筑公司的服务和安装收入。我试图跟踪技术人员的营业额,其中技术人员为销售人员创造了领先优势,并跟踪销售收入。在本例中,从数据库中提取,Justin是创建lead的技术人员;肖恩就是那个去拜访电话的推销员,在这种情况下,他把电话卖掉了;最后,Victor是安装该作业的人。所有销售人员的总数都为0,因为公司在安装完成之前不会收集。如果project\u id==0,则表示没有从原始调用创建潜在客户。项目编号可以跨越至少2行,最多3行 例如: project_
project\u id==0
,则表示没有从原始调用创建潜在客户。项目编号可以跨越至少2行,最多3行
例如:
project_id emp_name client_name ... invoice_date total
... ... ... ... ... ... ...
15315 26173042 Justin Bill W ... 2021-03-26 169.95
... ... ... ... ... ... ...
15322 26173042 Sean Bill W ... 2021-03-27 0
... ... ... ... ... ... ...
15347 26173042 Victor Bill W ... 2021-04-01 17235
15348 0 Justin Jane D ... 2021-04-01 285
... ... ... ... ... ... ...
我想表扬贾斯汀,因为他打了一个电话,卖出了172万美元,我想表扬肖恩,因为他卖掉了这份工作。我更愿意创建一个新的列,名为sales\u total
,用于捕获销售数字
所需输出:
project_id emp_name client_name ... invoice_date total sales_total
... ... ... ... ... ... ... ...
15315 26173042 Justin Bill W ... 2021-03-26 169.95 17235
... ... ... ... ... ... ... ...
15322 26173042 Sean Bill W ... 2021-03-27 0 17235
... ... ... ... ... ... ... ...
15347 26173042 Victor Bill W ... 2021-04-01 17235 17235
15348 0 Justin Jane D ... 2021-04-01 285 0
... ... ... ... ... ... ... ...
我试过使用
pd.groupby
,pd.sort_值
,以及pd.iloc
;但是没有成功。我不太明白如何为所需的行分配适当的值。如果有人知道解决方案或能为我指出正确的方向,我们将不胜感激。如果您有此数据帧(假设记录已排序=安装作业是最后一个):
然后:
创建sales\u total
列:
索引项目\u id emp\u名称客户\u名称发票\u日期总销售额\u总数
0 15315 26173042贾斯汀比尔W 2021-03-26 169.95 17235.0
1 15322 26173042肖恩比尔W 2021-03-27 0.00 17235.0
2 15347 26173042维克多比尔W 2021-04-01 17235.00 17235.0
3 15348 0贾斯汀简德2021-04-01 285.00 285.0
对于单个项目id,您想将总计的总和分配给所有行吗?@AmitVikramSingh我想对具有相同项目id的行应用总计的最大值。除了当项目id==0
时,因为有很多行的项目id为0。
index project_id emp_name client_name invoice_date total
0 15315 26173042 Justin Bill_W 2021-03-26 169.95
1 15322 26173042 Sean Bill_W 2021-03-27 0.00
2 15347 26173042 Victor Bill_W 2021-04-01 17235.00
3 15348 0 Justin Jane_D 2021-04-01 285.00
df["sales_total"] = df.groupby("project_id")["total"].transform("last")
print(df)