[英]python pandas- adding values of a column above the row you're on
我有一個看起來像這樣的數據框(但更長):
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
我想創建一個新列,該列將為每行在上面的TrialDur列中添加值,但不包括它。 而且由於TrialDur是試用期限,因此需要加上.001秒,並且我希望新列指示屏幕上出現新刺激的時間。 所以看起來像這樣:
NewVar
0
2.003
3.999
6.003
7.993
9.996
由於第一個刺激在時間點0開始,所以第一行將為0。第二行將在第一次試驗結束后(基於TrialDur變量)在2.003秒之后,依此類推。
如何制作一個變量,將每行上面的值相加?
您可以使用cumsum
來計算累加和(在此之前加0.001),然后將該列shift
1,最后將第一行設置為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
由於NewVar
還有一行,因此我首先在末尾添加一個空行,並假定索引按數字順序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.