import pandas as pd, numpy as np
pd.set_option('display.width',250)
d=pd.read_pickle('clean.pkl')
for fam in ['organic','bundle_eth','campaign_weth']:
  x0=d[(d.fam==fam)&(d.start=='small')]
  print('\n######',fam,'small-start n',len(x0))
  for L,col in [(2.5e5,'ts_250000'),(5e5,'ts_500000'),(1e6,'ts_1e+06')]:
    x=x0[x0[col].notna()].copy()
    x['spd']=pd.cut(x[col],[-1,60,300,900,3600,3*3600,21600],labels=['<1m','1-5m','5-15m','15-60m','1-3h','3-6h'])
    g=x.groupby('spd',observed=True).agg(n=('tok','size'),to1M=('pk',lambda s:(s>=1e6).mean()*100),to2M=('pk',lambda s:(s>=2e6).mean()*100),to5M=('pk',lambda s:(s>=5e6).mean()*100),rt5M=('pk_rt',lambda s:(s.fillna(0)>=5e6).sum()))
    print('\n crossed sellable $%g, by time from first trade:'%L); print(g.round(1).to_string())
