# This query will compute the statistics of how many customers have defaulted on loans. # For each customer journey, we will find the event where the account was # opened (to get the state info from the address), and check if the customer # has defaulted on the last loan (here we make use of knowledge that the # customer cannot get the next loan until all previous loans have been repaid). from cust_journey_data import cust_journeys from pythonql.helpers import print_table res = [ # We will return state, total number of customers with loans and customer's default rate select (state, len(last_issued) as custs_with_loans, sum(default)/len(last_issued) as default_rate ) # Iterate over all journeys for cj in cust_journeys # Fetch the 'open' and 'loan_issued' events from the journey let new = [select e for e in cj where e.event_name=='open'], issued = [select e for e in cj where e.event_name=='loan_issued'] # We're only interested in customers who were issued at least one loan where issued !=  # Find the last issued loan let last_issued = issued[-1], # Check whether this loan has been paid paid = [select e for e in cj where e.event_name=='loan_paid' and e.loan_id==last_issued.loan_id] != , default = 1 if not paid else 0 # Group the results by state group by new.client_data.address.state as state ] print_table (res)
Welcome to the PythonQL Web Demo
The Demo is organized into a number of scenarios that demonstrate the power and usability of PythonQL.
Each scenario illustrates a specific use case in data science that is addressed by PythonQL.