У меня есть фрейм данных, который я создал путем объединения нескольких фреймов данных, содержащих различные биты информации. Затем я создаю новые столбцы в фрейме данных с результатом операций над столбцами данных. один из столбцов ['MSD'] содержит NaN на стыке между каждым из фреймов данных, которые способствовали конкатенации.
I wi sh, чтобы создать новый столбец MSD_cum
, где каждое значение является совокупная сумма MSD
, но я хочу, чтобы совокупная сумма начиналась заново с каждого NaN`.
Уже есть вопрос об этом, но хотя код в предоставленных ему ответах выполняется без ошибок, ни один из них на самом деле делаю то, что я хочу ie.
MSD
1
2
3
4
NaN
1
2
3
создаст результат
MSD_cum
1
3
6
10
NaN
1
3
6
Вместо этого они дают то же, что и входные, или мои собственные первоначальные попытки, которые также потерпели неудачу и дали тот же результат, что и входные, пытались использовать оператор if, чтобы сделать cumsum обусловленным разницей между индексами данных.
if np.diff(data_230['time']) is 1:
data_230['MSD_cum'] = cumsum(data_230['MSD'])
else:
data_230['MSD_cum'] = data_230['MSD']
Я был бы доволен любым подходите к этому моменту.