Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- value_list = [1, 2, 3, 4, 5]
- func_list = [lambda x: x**2, lambda w: w+1]
- repr_select = 4
- class Item:
- def __init__(self, fl, rs):
- self.item_len = rs
- self.line = fl*(rs/len(fl))
- self.arg = []
- self.fill = False
- def add_value(self, val):
- self.arg.append(val)
- if len(self.arg) == self.item_len:
- self.fill = True
- def calc(self):
- return [a(b) for a, b in zip(self.line, self.arg)]
- if repr_select % len(func_list) == 0:
- result = []
- ii = Item(func_list, repr_select)
- for value in value_list:
- if ii.fill:
- result.append(ii.calc())
- ii = Item(func_list, repr_select)
- ii.add_value(value)
- if len(ii.arg) != 0:
- result.append(ii.calc())
- print result
- # [[1, 3, 9, 5], [25]]
- def fun(win, df):
- data = np.full((df.shape[0], win*df.shape[1]), np.nan)
- for i in range(win, len(df)):
- data[i] = df.iloc[i-win:i].values.ravel()
- return pd.DataFrame(data)
- res = fun(4, df)
- In [104]: res
- Out[104]:
- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- 0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
- 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
- 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
- 3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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