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
Post a Comment