我正在尝试重新创建Excel中的此报告:
Dealer Net NetSold NetRatio Phone PhSold PhRatio WalkIn WInSold WInRatio
Ford 671 31 4.62% 127 21 16.54% 93 24 25.81%
Toyota 863 37 4.29% 125 39 31.20% 97 32 32.99%
Chevy 826 67 8.11% 160 41 25.63% 224 126 56.25%
Dodge 1006 55 5.47% 121 28 23.14% 242 87 35.95%
Kia 910 57 6.26% 123 36 29.27% 202 92 45.54%
VW 1029 84 8.16% 316 65 20.57% 329 148 44.98%
Lexus 1250 73 5.84% 137 36 26.28% 138 69 50.00%
Total 6555 404 6.16% 1109 266 23.99% 1325 578 43.62%
从如下所示的csv中退出:
Dealer LeadType LeadStatusType
Chevy Internet Active
Ford Internet Active
Ford Internet Sold
Toyota Internet Active
VW Walk-in Sold
Kia Internet Active
Dodge Internet Active
csv中的数据更多,将在本报告的其他页面中使用,但是我真的只是想解决我现在坚持的部分,因为我想学习更多可能,并确保我处在良好的轨道上以继续前进。
我能够通过以下方法接近我认为需要的位置:
lead_counts = df.groupby('Dealer')['Lead Type'].value_counts().unstack()
当然可以提供漂亮的数据,按类型总结线索。问题是我现在需要根据其他字段插入计算出的列。例如:对于每个经销商,计算同时具有LeadType ='Internet'和LeadStatusType ='Sold'的销售线索的数量。
老实说,我尝试了很多事情,以致无法记住所有事情。
def leads_by_type(x):
for dealer in dealers:
return len(df[(df['Dealer'] == dealer) &(df['Lead Type'] == 'Internet') & (df['Lead Status Type'] == 'Sold')])
尝试了类似的方法,可以可靠地获取所需的数据,但是我真的无法弄清楚将其应用于列。
我只是尝试过:
lead_counts['NetSold'] = len(df[(df['Dealer'] == dealer) &(df['Lead Type'] == 'Internet') & (df['Lead Status Type'] == 'Sold')])
关于如何进行操作的任何建议,还是我已经采用了错误的方式?这在Excel中都是非常可行的,并且经常有人问我为什么要在Python中复制它。答案就是自动化和学习。
我知道表和代码中的某些列不完全匹配,这仅仅是因为我缩短了表中的某些列以将其清理以进行发布。