# What percentage of the customers were getting
# more than one call per week on deliquent loans?
from cust_journey_data import cust_journeys
from dateutil.parser import parse
# Compute the list of closed accounts
closed = [
select cj
for cj in cust_journeys
let close = next((select e for e in cj where e.event_name=='close'),None)
where close
]
# Compute the list of closed accounts with lots of reminders
too_many_reminders = [
# Iterate over closed accounts
select cj
for cj in closed
# Get a list of dates of all reminders
let reminder_dates = [select parse(e.date)
for e in cj
where e.event_name=='reminder']
# Check whether two different dates are less than 30 days appart
where [ select d1
for d1 in reminder_dates, d2 in reminder_dates
where d1 != d2 and (d1 - d2).days < 30 ]]
print("Fraction of closed accounts due to reminders: %.2g" %
(len(too_many_reminders)/len(closed)))
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.
