Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. # Import libraries
  2. import pandas as pd
  3. import xlsxwriter
  4.  
  5. # Set system paths
  6. INPUT_PATH = 'SystemPath//Downloads//'
  7. INPUT_FILE = 'rawData.csv'
  8.  
  9. OUTPUT_PATH = 'SystemPath//Downloads//Output//'
  10. OUTPUT_FILE = 'rawDataOutput.xlsx'
  11.  
  12. # Get data
  13. df = pd.read_csv(INPUT_PATH + INPUT_FILE)
  14.  
  15. # Clean data
  16. cleanedData = df[['State','Campaigns','Type','Start date','Impressions','Clicks','Spend(INR)',
  17. 'Orders','Sales(INR)','NTB orders','NTB sales']]
  18. cleanedData = cleanedData[cleanedData['Impressions'] != 0].sort_values('Impressions',
  19. ascending= False).reset_index()
  20. cleanedData.loc['Total'] = cleanedData.select_dtypes(pd.np.number).sum()
  21. cleanedData['CTR(%)'] = (cleanedData['Clicks'] /
  22. cleanedData['Impressions']).astype(float).map("{:.2%}".format)
  23. cleanedData['CPC(INR)'] = (cleanedData['Spend(INR)'] / cleanedData['Clicks'])
  24. cleanedData['ACOS(%)'] = (cleanedData['Spend(INR)'] /
  25. cleanedData['Sales(INR)']).astype(float).map("{:.2%}".format)
  26. cleanedData['% of orders NTB'] = (cleanedData['NTB orders'] /
  27. cleanedData['Orders']).astype(float).map("{:.2%}".format)
  28. cleanedData['% of sales NTB'] = (cleanedData['NTB sales'] /
  29. cleanedData['Sales(INR)']).astype(float).map("{:.2%}".format)
  30. cleanedData = cleanedData[['State','Campaigns','Type','Start date','Impressions','Clicks','CTR(%)',
  31. 'Spend(INR)','CPC(INR)','Orders','Sales(INR)','ACOS(%)',
  32. 'NTB orders','% of orders NTB','NTB sales','% of sales NTB']]
  33.  
  34. # Create summary
  35. summaryData = cleanedData.groupby(['Type'])[['Spend(INR)','Sales(INR)']].agg('sum')
  36. summaryData.loc['Overall Snapshot'] = summaryData.select_dtypes(pd.np.number).sum()
  37. summaryData['ROI'] = summaryData['Sales(INR)'] / summaryData['Spend(INR)']
  38.  
  39. # Push to excel
  40. writer = pd.ExcelWriter(OUTPUT_PATH + OUTPUT_FILE, engine='xlsxwriter')
  41. summaryData.to_excel(writer, sheet_name='Summary')
  42. cleanedData.to_excel(writer, sheet_name='Overall Report')
  43. writer.save()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement