This method creates an index of all days between the first case open and the max of the last case opened or closed. It then iterates through each of these dates and filters the dataframe for the relevant date, checking the resulting size.
df['Open'] = pd.to_datetime(df.Open)
df['Close'] = pd.to_datetime(df.Close)
idx = pd.date_range(df.Open.min(), max(df.Open.max(), df.Close.max()))
cases = pd.DataFrame([len(df[(date >= df.Open) & (date < df.Close)])
for date in idx],
index=idx, columns=['case_count'])
>>> cases.head(3)
case_count
2015-01-01 1
2015-01-02 1
2015-01-03 1
>>> cases.tail(3)
case_count
2015-03-30 1
2015-03-31 1
2015-04-01 0
openis in3/1/15equal1and is missing4/1/15with1too.1/1/15be 1? At end of the day, one event got closed?