python pandas- adding values of a column above the row you're on -


i have dataframe looks (but longer):

onsettime  offsettime     onsec    offsec  rtsec    trialdur   36163       38165         36.163   38.165  0.000     2.002    39157       41152         39.157   41.152  0.605     1.995    42152       44155         42.152   44.155  0.509     2.003    45164       47153         45.164   47.153  0.503     1.989    48159       50161         48.159   50.161  0.558     2.002    

i want make new column would, each row, add values in trialdur column above not including it. , need add on .001 of second, since trialdur trial duration, , want new column indicate time when new stimulus came on screen. this:

newvar 0 2.003 3.999 6.003 7.993 9.996 

the first row 0 since first stimulus started @ timepoint 0. second right after first trial ended (based on trialdur variable), @ 2.003 seconds, , on.

how make variable adds values above in each row?

you can use cumsum compute cumulative sum (add 0.001 before that), shift column 1, set first row 0.

df['newvar'] = (df.trialdur + 0.001).cumsum() df.loc[df.index[-1]+1, 'newvar'] = 0 df['newvar'] = df.newvar.shift(1) df.loc[0, 'newvar'] = 0 

because newvar has 1 more row, first add 1 empty row @ end, , assume index in numerical order.


Comments