Guest User

Untitled

a guest
Jan 23rd, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  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
Add Comment
Please, Sign In to add comment