Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pandas as pd
- import datetime as dt
- import numpy as np
- orders = pd.read_csv('/datasets/data_for_tasks_3.csv', sep=',')
- orders['date'] = orders['date'].map(lambda x: dt.datetime.strptime(x, '%d/%m/%Y'))
- visitors = pd.read_csv('/datasets/data_for_tasks_3_visitors.csv', sep=',')
- visitors['date'] = visitors['date'].map(lambda x: dt.datetime.strptime(x, '%d/%m/%Y'))
- print(orders.head(5))
- print(visitors.head(5))
- datesGroups = orders[['date','group']].drop_duplicates()
- ordersAggregated = datesGroups.apply(
- lambda x: orders[np.logical_and(orders['date'] <= x['date'], orders['group'] == x['group'])].agg({
- 'date' : 'max',
- 'group' : 'max',
- 'orderId' : pd.Series.nunique,
- 'userId' : pd.Series.nunique,
- 'revenue' : 'sum'}), axis=1).sort_values(by=['date','group'])
- visitorsAggregated = datesGroups.apply(
- lambda x: visitors[np.logical_and(visitors['date'] <= x['date'], visitors['group'] == x['group'])].agg({
- 'date' : 'max',
- 'group' : 'max',
- 'visitors' : 'sum'}), axis=1).sort_values(by=['date','group'])
- cummulativeData = ordersAggregated.merge(visitorsAggregated, left_on=['date', 'group'], right_on=['date', 'group'])
- cummulativeData.columns = ['date', 'group', 'orders', 'buyers', 'revenue', 'visitors']
- print(cummulativeData.head(5))
Advertisement
Add Comment
Please, Sign In to add comment