Logit is a GLM for 0/1. disp=0 quiets the solver log. busy is 1 when the kiosk is packed.
Goal
Fit busy ~ units and print params.
import pandas as pd
import statsmodels.api as sm
df = pd.DataFrame({'units': [12, 9, 3, 7, 2, 11], 'busy': [1, 1, 0, 1, 0, 1]})
fit = sm.Logit(df['busy'], sm.add_constant(df['units'])).fit(disp=0)
print(fit.params.round(3).to_dict())
print('prsquared', round(fit.prsquared, 3))import pandas as pd
import statsmodels.api as sm
df = pd.DataFrame({'x': [0, 0, 1, 1, 2, 2], 'y': [0, 0, 0, 1, 1, 1]})
print(sm.Logit(df['y'], sm.add_constant(df['x'])).fit(disp=0).predict([1, 1]).round(3))import pandas as pd
import statsmodels.formula.api as smf
df = pd.DataFrame({'units': [12, 3, 11, 2], 'busy': [1, 0, 1, 0]})
print(smf.logit('busy ~ units', data=df).fit(disp=0).params.round(3).to_dict())import pandas as pd
import statsmodels.api as sm
print(sm.families.Binomial())