teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

タイポを修正

2020/03/19 00:30

投稿

magichan
magichan

スコア15898

answer CHANGED
@@ -40,7 +40,7 @@
40
40
  **【修正回答】**
41
41
  kirara0048 さんと回答により仕様を完全に間違って解釈していたことが判明しましたので・・・
42
42
 
43
- 10,12,13 の周期毎に `id` を振りたいのであれば `num` 13 から 10 への変化点だけを見て積算するとよろしいかと
43
+ 10,12,13 の周期毎に `id` を振りたいのであれば `num`値の 13 から 10 への変化点だけを見て積算するとよろしいかと
44
44
 
45
45
  ```Python
46
46
  import pandas as pd

1

回答を修正(仕様の解釈が間違っていたため)

2020/03/19 00:30

投稿

magichan
magichan

スコア15898

answer CHANGED
@@ -33,4 +33,44 @@
33
33
  #2 4
34
34
  #3 2
35
35
  #4 3
36
+ ```
37
+
38
+ ---
39
+
40
+ **【修正回答】**
41
+ kirara0048 さんと回答により仕様を完全に間違って解釈していたことが判明しましたので・・・
42
+
43
+ 10,12,13 の周期毎に `id` を振りたいのであれば `num` 13 から 10 への変化点だけを見て積算するとよろしいかと
44
+
45
+ ```Python
46
+ import pandas as pd
47
+ df = pd.DataFrame({'num': [10,10,10,10,12,12,12,12,13,13,13,10,12,12,13,13,10,10,10,10,12,12,13]})
48
+
49
+ # idを振る
50
+ df['id'] = ((df['num'].shift()!=10) & (df['num']==10)).cumsum()
51
+ print(df)
52
+ # num id
53
+ #0 10 1
54
+ #1 10 1
55
+ #2 10 1
56
+ #3 10 1
57
+ #4 12 1
58
+ #5 12 1
59
+ #6 12 1
60
+ #7 12 1
61
+ #8 13 1
62
+ #9 13 1
63
+ #10 13 1
64
+ #11 10 2
65
+ #12 12 2
66
+ #13 12 2
67
+ #14 13 2
68
+ #15 13 2
69
+ #16 10 3
70
+ #17 10 3
71
+ #18 10 3
72
+ #19 10 3
73
+ #20 12 3
74
+ #21 12 3
75
+ #22 13 3
36
76
  ```