data4_pivot = data4.pivot_table(index=['user_id', 'month'], values=['distance', 'duration', 'name', 'subscription_type'], aggfunc={'distance':'sum', 'duration':'sum', 'name':'count', 'subscription_type': 'min'}) data4_pivot.columns = ['total_distance', 'total_duration', 'trip_count', 'subscription_type'] data4_pivot['total_duration'] = round(data4_pivot['total_duration'], 0) def money(subscription_type): if subscription_type == 'ultra': return data4_pivot['total_duration'] * 6 + data4_pivot['subscription_type'].count() * 199 if subscription_type == 'free': return data4_pivot['total_duration']* 8 + data4_pivot['trip_count'].count() * 50 data4_pivot['money'] = data4_pivot['subscription_type'].apply(money)