Applyafunctiontoeachcellofapandasdataframeusinginformationfromaparticularcolumn
I want to expand the list entries of a dataframe using the information in column i:
i s_1 s_1 s_3
2 [1, 2, 3] [3, 4, 5] NaN
1 NaN [0, 0, 0] [2]
The i value just indicates how often the last value of each list should be copied:
i s_1 s_1 s_3
2 [1, 2, 3, 3, 3] [3, 4, 5, 5, 5] NaN
1 NaN [0, 0, 0, 0] [2, 2]
I am currently using a nested apply loop:
test.apply(lambda x: x.apply(
lambda y: np.pad(y, (0, x.i), 'constant', constant_values=y[-1]) if type(y)==list else 0), axis=1)
However, this is very slow and if i have a lot of rows (>10.000) the code breaks. This solution seems a bit messy and i'm wondering what the best approach would be to do something like that?
THE END
二维码