def FilDelta(n_clicks, value1, lid, children): if (n_clicks != None) & (value1 != None) & (lid != None) & (children != None): optionsInfo_C = pd.DataFrame( json.loads(json.loads(children)['optionsInfo_C'])) optionsInfo_P = pd.DataFrame( json.loads(json.loads(children)['optionsInfo_P'])) optionsInfo = pd.DataFrame( json.loads(json.loads(children)['optionsInfo'])) optionsInfo = optionsInfo.sort_values('STRIKE_PRC') optionsInfo_C = optionsInfo_C.sort_values('STRIKE_PRC') optionsInfo_P = optionsInfo_P.sort_values('STRIKE_PRC') optionsInfo.index = range(len(optionsInfo)) optionsInfo_C.index = range(len(optionsInfo_C)) optionsInfo_P.index = range(len(optionsInfo_P)) # lldate=list(set(optionsInfo.EXPIR_DATE.values)) # lldate.sort() lid.sort() lldate = lid Selec_C = Func.DeltaStreikFilter(optionsInfo_C, lldate, value1) Selec_P = Func.DeltaStreikFilter(optionsInfo_P, lldate, value1) callRIC = pd.DataFrame(Selec_C).T callRIC.columns = lldate call = pd.DataFrame([ optionsInfo[optionsInfo.Instrument.isin( Selec_C[i])].STRIKE_PRC.values for i in range(len(Selec_C)) ]).T call.columns = lldate putRIC = pd.DataFrame(Selec_P).T putRIC.columns = lldate put = pd.DataFrame([ optionsInfo[optionsInfo.Instrument.isin( Selec_P[i])].STRIKE_PRC.values for i in range(len(Selec_P)) ]).T put.columns = lldate RE = { "callRIC": callRIC.to_json(), "call": call.to_json(), "putRIC": putRIC.to_json(), "put": put.to_json(), } return (json.dumps(RE)) else: return (None)