Append по строке, с NaN
Допустим у меня есть вот такой датафрейм:
Как сделать так что бы с момента первого вхождения, до самого конца строки была сумма массивов
Ну вот для примера, хотелось бы что бы наша третья строка (2 индекс) выглядел так:

Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Наверняка можно сделать как-то короче, но у меня получилось только вот так, с преобразованием NaN в пустой список, а потом обратно:
import pandas as pd
import numpy as np
# генерируем данные
df = pd.DataFrame(np.random.randint(0, 20, (6,6))).applymap(lambda x: [x])
df.iloc[:,:2] = np.nan
print(df)
# объединение списков через cumsum, по идее там есть параметр skipna, но у меня что-то с ним не получилось
df = df.applymap(lambda x: [] if pd.isna(x) else x).cumsum(axis=1).applymap(lambda x: np.nan if x == [] else x)
print(df)
Вывод:
0 1 2 3 4 5
0 NaN NaN [10] [6] [9] [17]
1 NaN NaN [4] [5] [3] [14]
2 NaN NaN [18] [0] [4] [5]
3 NaN NaN [3] [10] [0] [17]
4 NaN NaN [0] [3] [9] [10]
5 NaN NaN [17] [4] [14] [6]
0 1 2 3 4 5
0 NaN NaN [10] [10, 6] [10, 6, 9] [10, 6, 9, 17]
1 NaN NaN [4] [4, 5] [4, 5, 3] [4, 5, 3, 14]
2 NaN NaN [18] [18, 0] [18, 0, 4] [18, 0, 4, 5]
3 NaN NaN [3] [3, 10] [3, 10, 0] [3, 10, 0, 17]
4 NaN NaN [0] [0, 3] [0, 3, 9] [0, 3, 9, 10]
5 NaN NaN [17] [17, 4] [17, 4, 14] [17, 4, 14, 6]
