Dask delayed object computed result not get proper dataframe

186 Views Asked by At

I tried to use dask delayed to improve loops iteration speed, iteration done by map function. The problem is after dd.compute(), the result list is over bracket, so can not get proper dataframe. Anyone have solutions?

def combine(val):
    a=delayed(rss)(val)
    b=delayed(altman)(val)
    df={'Tiker':val,'RS':a,'Alt':b}
    return df

vals=tickers

df=map(combine,vals)
df=dd.compute(df)
df

Output:

([{'Tiker': 'ABDA.JK', 'RS': 0.75, 'Alt': 4.1937988034309255},
  {'Tiker': 'ABMM.JK', 'RS': 1.75, 'Alt': 6320.155816168163},
  {'Tiker': 'ACES.JK', 'RS': 0.44, 'Alt': 7.431649213502305}],)
1

There are 1 best solutions below

0
On

It may be help for beginner like me, we can try trimmed over bracket list by: flatten one level of nesting

def flatten(listOfLists): 
# "Flatten one level of nesting" 
return chain.from_iterable(listOfLists) 
lst=list(flatten(lst))