簡體   English   中英

python pandas-在您所在的行上方添加一列的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM