diff --git a/Problem1_GroupsoldByDate.py b/Problem1_GroupsoldByDate.py new file mode 100644 index 0000000..7d3d9d2 --- /dev/null +++ b/Problem1_GroupsoldByDate.py @@ -0,0 +1,35 @@ +import pandas as pd + +#Soln 1 Without pandas +# def categorize_products(activities: pd.DataFrame) -> pd.DataFrame: +# dict={} + +# for i in range(len(activities)): +# sell_date=activities['sell_date'][i] +# product=activities['product'][i] + +# if sell_date not in dict: +# dict[sell_date]=set() +# dict[sell_date].add(product) + + +# result=[] + +# for key,value in dict.items(): +# temp=[] +# for product in value: +# temp.append(product) +# temp.sort() +# s=','.join(temp) +# result.append([key,len(value),s]) + +# df=pd.DataFrame(result,columns=['sell_date','num_sold','products']) +# return df.sort_values(by='sell_date') + +#Soln 2 With pandas +def categorize_products(activities: pd.DataFrame) -> pd.DataFrame: + groups=activities.groupby('sell_date').agg( + num_sold=('product','nunique'), + products=('product',lambda x: ','.join(sorted(set (x)))) + ).reset_index() + return groups.sort_values(by='sell_date') diff --git a/Problem2_DailyLeadsPartners.py b/Problem2_DailyLeadsPartners.py new file mode 100644 index 0000000..08a0160 --- /dev/null +++ b/Problem2_DailyLeadsPartners.py @@ -0,0 +1,8 @@ +import pandas as pd + +def daily_leads_and_partners(daily_sales: pd.DataFrame) -> pd.DataFrame: + df= daily_sales.groupby(['date_id','make_name']).agg( + unique_leads=('lead_id','nunique'), + unique_partners=('partner_id','nunique') + ).reset_index() + return df \ No newline at end of file diff --git a/Problem3_ActorDirector.py b/Problem3_ActorDirector.py new file mode 100644 index 0000000..968133c --- /dev/null +++ b/Problem3_ActorDirector.py @@ -0,0 +1,6 @@ +import pandas as pd + +def actors_and_directors(actor_director: pd.DataFrame) -> pd.DataFrame: + df=actor_director.groupby(['actor_id','director_id'])['timestamp'].size().reset_index(name='count') + df=df[df['count']>=3] + return df[['actor_id','director_id']] # type: ignore \ No newline at end of file