SHARE
TWEET

Untitled

a guest Jan 23rd, 2019 53 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. value_list = [1, 2, 3, 4, 5]
  2.    
  3. func_list = [lambda x: x**2, lambda w: w+1]
  4.    
  5. repr_select = 4
  6.    
  7. class Item:
  8.     def __init__(self, fl, rs):
  9.         self.item_len = rs
  10.         self.line = fl*(rs/len(fl))
  11.         self.arg = []
  12.         self.fill = False
  13.  
  14.     def add_value(self, val):
  15.         self.arg.append(val)
  16.         if len(self.arg) == self.item_len:
  17.             self.fill = True
  18.  
  19.     def calc(self):
  20.         return [a(b) for a, b in zip(self.line, self.arg)]
  21.    
  22. if repr_select % len(func_list) == 0:
  23.     result = []
  24.     ii = Item(func_list, repr_select)
  25.     for value in value_list:
  26.         if ii.fill:
  27.             result.append(ii.calc())
  28.             ii = Item(func_list, repr_select)
  29.         ii.add_value(value)
  30.     if len(ii.arg) != 0:
  31.         result.append(ii.calc())
  32.     print result
  33. # [[1, 3, 9, 5], [25]]
  34.    
  35. def fun(win, df):
  36.     data = np.full((df.shape[0], win*df.shape[1]), np.nan)
  37.     for i in range(win, len(df)):
  38.         data[i] = df.iloc[i-win:i].values.ravel()
  39.     return pd.DataFrame(data)
  40.  
  41. res = fun(4, df)
  42.    
  43. In [104]: res
  44. Out[104]:
  45.       0     1     2     3     4     5     6     7     8     9     10    11    12    13    14    15
  46. 0    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN
  47. 1    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN
  48. 2    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN
  49. 3    NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN   NaN
  50. 4    9.0   8.0  35.0   6.0  24.0  32.0  38.0  21.0  17.0  24.0  37.0  14.0  12.0  16.0  36.0   9.0
  51. 5   24.0  32.0  38.0  21.0  17.0  24.0  37.0  14.0  12.0  16.0  36.0   9.0   9.0   8.0  35.0   6.0
  52. 6   17.0  24.0  37.0  14.0  12.0  16.0  36.0   9.0   9.0   8.0  35.0   6.0  44.0  48.0  40.0  41.0
  53. 7   12.0  16.0  36.0   9.0   9.0   8.0  35.0   6.0  44.0  48.0  40.0  41.0  12.0  16.0  36.0   9.0
  54. 8    9.0   8.0  35.0   6.0  44.0  48.0  40.0  41.0  12.0  16.0  36.0   9.0  72.0  64.0  42.0  69.0
  55. 9   44.0  48.0  40.0  41.0  12.0  16.0  36.0   9.0  72.0  64.0  42.0  69.0  17.0  24.0  37.0  14.0
  56. 10  12.0  16.0  36.0   9.0  72.0  64.0  42.0  69.0  17.0  24.0  37.0  14.0   8.0   0.0  34.0   5.0
  57. 11  72.0  64.0  42.0  69.0  17.0  24.0  37.0  14.0   8.0   0.0  34.0   5.0   9.0   8.0  35.0   6.0
  58. 12  17.0  24.0  37.0  14.0   8.0   0.0  34.0   5.0   9.0   8.0  35.0   6.0  12.0  16.0  36.0   9.0
  59. 13   8.0   0.0  34.0   5.0   9.0   8.0  35.0   6.0  12.0  16.0  36.0   9.0   9.0   8.0  35.0   6.0
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top