我正在對資料框執行數學運算。這是對我有用的操作。
df['delta'] = np.where (df ['peak'] == 1, df['value'] - df['value'].shift(1), np.NaN)
現在我想用索引做同樣的事情。索引是整數,但它們有間隙。
我的資料框看起來像這樣:
, value, peak
40, 5878, 1
90, 8091, 1
98, 9091, 1
101,10987,1
那么,我應該怎么寫我的臺詞呢?我的意思是這樣的:
df['i'] = np.where (df ['peak'] == 1, df.index - df.index.shift(1), np.NaN)
所以,我想得到值為 50、8、3 等的列......
uj5u.com熱心網友回復:
由于df.index.shift()僅針對與時間相關的索引實作,因此請使用 NumPydiff作為替代np.diff(df.index, prepend=np.nan):
df['i'] = np.where(df.peak == 1, np.diff(df.index, prepend=np.nan), np.nan)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/455038.html
