假設我有以下 pandas.dataframe:
data
series time_idx value
0 0 0 -0.000000
1 0 1 0.018844
2 0 2 0.028694
3 0 3 0.050784
4 0 4 0.067037
... ... ... ...
3995 9 395 0.973978
3996 9 396 0.944002
3997 9 397 1.001089
3998 9 398 1.132001
3999 9 399 1.169244
4000 rows × 3 columns
我想測試每個系列 (0..9) 的時間索引是否從行到行遞增 1,如果不是,差異在哪裡?
我想過按系列和時間索引對數據幀進行排序,然後與索引 mod 400 進行比較,但這不是一個很好的解決方案。有什麼建議?
謝謝
以下是根據我從你的問題中了解到的。看看這是否回答了您的問題。我必須使用 'True' 而不是 Boolean True 因為數據框將其轉換為數字 1.0。
df['IncOne'] = (df.series==df.series.shift())
df['IncOne'] = (
np.where(df.IncOne,
np.where( df.time_idx.eq(df.time_idx.shift()+1),
'True' , df.time_idx-df.time_idx.shift() ),
''))
系列 | time_idx | 價值 | 公司 | |
---|---|---|---|---|
0 | 0 | 0 | 0 | |
1 | 0 | 1 | 0.018844 | 真的 |
2 | 0 | 2 | 0.028694 | 真的 |
3 | 0 | 3 | 0.050784 | 真的 |
4 | 0 | 4 | 0.067037 | 真的 |
5 | 0 | 6 | 0 | 2.0 |
6 | 0 | 7 | 0.018844 | 真的 |
7 | 0 | 8 | 0.028694 | 真的 |
8 | 0 | 9 | 0.050784 | 真的 |
9 | 0 | 12 | 0.067037 | 3.0 |
10 | 0 | 13 | 1 | 真的 |
11 | 9 | 395 | 0.973978 | |
12 | 9 | 396 | 0.944002 | 真的 |
13 | 9 | 397 | 1.00109 | 真的 |
14 | 9 | 398 | 1.132 | 真的 |
15 | 9 | 399 | 1.16924 | 真的 |
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句